ארגומנטים של שורת פקודה בג'אווה

1. הקדמה

זה די נפוץ להריץ יישומים משורת הפקודה באמצעות ארגומנטים. במיוחד בצד השרת. בדרך כלל, אנחנו לא רוצים שהיישום יעשה את אותו הדבר בכל ריצה: אנחנו רוצים להגדיר את ההתנהגות שלה בצורה כלשהי.

במדריך קצר זה נחקור כיצד נוכל לטפל בארגומנטים של שורת פקודה ב- Java.

2. גישה לוויכוחים בשורת הפקודה בג'אווה

מאז רָאשִׁי השיטה היא נקודת הכניסה של יישום Java, ה- JVM מעביר את טיעוני שורת הפקודה דרך הטיעונים שלה.

הדרך המסורתית היא להשתמש ב- חוּט מַעֲרָך:

סטטי ציבורי ריק ריק (מחרוזת [] טענות) {// לטפל בוויכוחים}

עם זאת, Java 5 הציגה varargs, שהם מערכים בבגדי צאן. לכן, אנו יכולים להגדיר את שלנו רָאשִׁי עם חוּט vararg:

סטטי ציבורי ריק ריק (מחרוזת ... טענות) {// לטפל בוויכוחים}

הם זהים, ולכן הבחירה ביניהם תלויה לחלוטין לפי הטעם וההעדפה האישיים.

פרמטר השיטה של רָאשִׁי השיטה מכילה את הארגומנטים של שורת הפקודה באותו סדר שהעברנו בעת ביצוע. אם אנחנו רוצים לגשת לכמה וויכוחים קיבלנו, אנחנו רק צריכים לבדוק את אורך של המערך.

לדוגמא, אנו יכולים להדפיס את מספר הארגומנטים ואת ערכם על הפלט הסטנדרטי:

חלל סטטי ציבורי ראשי (String [] args) {System.out.println ("ספירת ארגומנטים:" + args.length); עבור (int i = 0; i <args.length; i ++) {System.out.println ("Argument" + i + ":" + args [i]); }}

שים לב שבשפות מסוימות, הטיעון הראשון יהיה שם היישום. מצד שני, ב- Java, מערך זה מכיל רק את הטיעונים.

3. כיצד להעביר טיעונים בשורת הפקודה

כעת, כשיש לנו יישום המטפל בטיעונים בשורת הפקודה, אנו להוטים לנסות זאת. בואו נראה אילו אפשרויות יש לנו.

3.1. שורת פיקוד

הדרך הברורה ביותר היא שורת הפקודה. נניח שכבר קיבצנו את השיעור com.baeldung.commandlinearguments.CliExample עם שלנו רָאשִׁי שיטה בו.

אז נוכל להריץ אותו עם הפקודה הבאה:

java com.baeldung.commandlinearguments.CliExample

זה מייצר את התפוקה הבאה:

ספירת טיעונים: 0

כעת נוכל להעביר טיעונים אחרי שם הכיתה:

java com.baeldung.commandlinearguments.Cli דוגמה שלום עולם!

והתפוקה היא:

ספירת טיעונים: 2 טיעון 0: שלום טיעון 1: עולם!

בדרך כלל אנו מפרסמים את היישום שלנו כקובץ צנצנת, ולא כחבורה של .מעמד קבצים. בואו נגיד, ארזנו את זה ב cli-example.jar, וקבענו com.baeldung.commandlinearguments.CliExample כמעמד הראשי.

כעת נוכל להריץ זאת ללא ויכוחים באופן הבא:

java -jar cli-example.jar

או עם טיעונים:

java -jar cli-example.jar שלום עולם! ספירת טיעונים: 2 טענה 0: שלום טענה 1: עולם!

ציין זאת Java תתייחס לכל טיעון שאנו מעבירים אחרי שם המחלקה או שם קובץ ה- jar כטיעונים של היישום שלנו. לכן, כל מה שאנחנו מעבירים לפני כן הם טיעונים עבור ה- JVM עצמו.

3.2. ליקוי חמה

בזמן שאנחנו עובדים על היישום שלנו, נרצה לבדוק אם זה עובד כמו שאנחנו רוצים.

ב- Eclipse נוכל להריץ יישומים בעזרת תצורות הפעלה. לדוגמא, תצורת הפעלה מגדירה באיזה JVM להשתמש, מהי נקודת הכניסה, מסלול הכיתה וכו '. וכמובן, אנו יכולים לציין טיעונים בשורת הפקודה.

הדרך הקלה ביותר ליצור תצורת ריצה מתאימה היא לחיצה ימנית על שלנו רָאשִׁי ואז לבחור הפעל בשם> יישום Java מתפריט ההקשר:

עם זאת, אנו מריצים מיידית את היישום שלנו עם הגדרות המכבדות את הגדרות הפרויקט שלנו.

כדי לספק טיעונים, עלינו לערוך את תצורת הריצה הזו. אנחנו יכולים לעשות את זה דרך הפעל> הפעל תצורות ... אפשרות תפריט. כאן עלינו ללחוץ על ויכוחים הכרטיסייה ומלא את טיעוני תכנית תיבת טקסט:

להכות לָרוּץ יריץ את היישום ויעביר את הטיעונים שהזנו זה עתה.

3.3. IntelliJ

IntelliJ משתמשת בתהליך דומה להפעלת יישומים. זה מכנה אפשרויות אלה פשוט בתצורות.

ראשית, עלינו ללחוץ לחיצה ימנית על ה- רָאשִׁי ואז לבחור הפעל את 'CliExample.main ()':

זה יפעיל את התוכנית שלנו, אבל זה גם יוסיף אותה ל- לָרוּץ רשימה לתצורה נוספת.

אז כדי להגדיר טיעונים, עלינו לבחור הפעל> ערוך תצורות ... ולערוך את טיעוני תכנית תיבת טקסט:

לאחר מכן, עלינו ללחוץ על אישור ולהפעיל מחדש את היישום שלנו, למשל באמצעות כפתור ההפעלה בסרגל הכלים.

3.4. NetBeans

NetBeans גם תואמת את תהליכי הריצה והתצורה שלה.

עלינו להפעיל את היישום שלנו תחילה על ידי לחיצה ימנית על ה- רָאשִׁי שיטה ובחירה הפעל קובץ:

כמו בעבר, זה יוצר תצורת הפעלה ומריץ את התוכנית.

לאחר מכן, עלינו להגדיר את הארגומנטים בתצורת ההפעלה ההיא. אנו יכולים לעשות זאת על ידי בחירה הפעל> הגדר תצורת פרויקט> התאמה אישית ... אז אנחנו צריכים לָרוּץ משמאל ומלא את ויכוחים שדה טקסט:

לאחר מכן, עלינו ללחוץ על אישור ולהתחיל את היישום.

4. ספריות צד שלישי

טיפול ידני בטיעוני שורת הפקודה הוא פשוט בתרחישים פשוטים. עם זאת, ככל שהדרישות שלנו הופכות מורכבות יותר ויותר, כך גם הקוד שלנו. לכן, אם ברצוננו ליצור יישום עם מספר שורות פקודה, יהיה קל יותר להשתמש בספריית צד שלישי.

למרבה המזל, יש שפע של ספריות שתומכות ברוב מקרי השימוש. שתי דוגמאות פופולריות הן Picocli ו- Spring Shell.

5. מסקנה

תמיד מומלץ להגדיר את התנהגות היישום שלך. במאמר זה ראינו כיצד לעשות זאת באמצעות ארגומנטים של שורת פקודה. בנוסף, סקרנו דרכים שונות להעביר טיעונים אלה.

כרגיל, הדוגמאות זמינות ב- GitHub.