在Java中使用命令列參數的方法:先從終端機視窗執行Java應用程式;然後將參數傳遞給應用程式的起始點即可。
本文操作環境:Windows7系統、Dell G3電腦、Java8.0版。
命令列參數可以是為應用程式指定配置屬性的一種方式,Java也不例外。您可以從終端機視窗執行Java應用程序,而不是點擊作業系統中的應用程式圖示 。除了應用程式名稱之外,還可以跟隨許多參數,然後將這些參數傳遞給應用程式的起始點(即,在Java的情況下為main方法)。
例如,NetBeans具有許多啟動參數,當從終端視窗運行時,可以將這些參數傳遞給應用程式(例如,-jdkhome 指定要使用的JDK的版本,而不是與NetBeans應用程式關聯的預設JDK)。
main方法
讓我們檢查main方法,看看傳遞給應用程式的參數出現在哪裡:
public static void main(String[] args) { ...do something here }
命令列參數可以在名為的String 數組中找到args。
例如,讓我們考慮一個被呼叫的應用程序,CommandLineArgs其唯一的操作是列印傳遞給它的命令列參數:
public class CommandLineArgs { public static void main(String[] args) { //检查字符串数组是否为空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } //对于字符串数组中的每个字符串 //打印出字符串。 for(String argument: args) { System.out.println(argument); } } }
命令列參數的語法
Java執行時間引擎(JRE)期望遵循特定語法傳遞參數,如下所示:
java ProgramName value1 value2
在上面,「java」呼叫JRE,後面跟著您正在呼叫的程式的名稱。接下來是程式的任何參數。程式可以採用的參數數量沒有限制,但順序很重要。 JRE會依照它們在命令列中出現的順序傳遞參數。例如,請考慮上述程式碼段:
public class CommandLineArgs2 { public static void main(String[] args) { if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); }
當參數傳遞給Java程式時,args[0]是陣列的第一個元素(上面的value1), args[1]是第二個元素( value2),以此類推。 length()代碼定義了陣列的長度。
透過命令列參數
在NetBeans中,我們可以傳遞命令列參數,而不必建立應用程式並從終端機視窗運行它。若要指定命令列參數:
右鍵點選「專案」視窗中的「專案」資料夾。
選擇Properties選項以開啟專案屬性視窗。
在右邊的Categories清單中,選擇Run。
在出現的Arguments文字方塊中,指定要傳遞給應用程式的命令列參數。例如,如果我們在Arguments文字方塊中輸入Apple Banana Carrot並運行上面列出的CommandLineArgs程序,我們將得到輸出:
Apple Banana Carrot
解析命令列參數
#通常,會傳遞一個命令列參數,其中包含一些關於如何處理傳遞的值的資訊。通知應用程式參數的參數通常在其名稱前有一兩個連字符。例如,用於指定JDK路徑的啟動參數的NetBeans範例是-jdkhome。
這表示您需要解析命令列參數,以確定如何處理這些值。有幾個用於解析命令列參數的Java命令列框架。或者,如果需要傳遞的參數不多,也可以編寫一個簡單的命令列解析器:
public class CommandLineArgs { //命令行参数: // -打印输出输出它后面的所有参数 //addnumbers在后面添加所有的数字参数 public static void main(String[] args) { //检查字符串数组是否为空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } else { // 设置一些初始变量 boolean printout = false; boolean addNumbers = false; boolean validNumbers = true; int total = 0; for(String argument: args) { if(argument.equals("-addnumbers")) { printout = false; addNumbers = true; } else if (argument.equals("-printout")) { printout = true; addNumbers = false; } else if (addNumbers) { try { total = total + Integer.parseInt(argument); } catch (NumberFormatException e) { System.out.println("arguments passed with -addnumbers " + "must be integers!"); validNumbers = false; addNumbers = false; } } else if (printout) { System.out.println(argument); } } if (validNumbers) { System.out.println("The total of the number arguments is: " + total); } } } }
上面的程式碼要么打印參數,要么將它們相加(如果它們是整數)。例如,這個命令列參數將會加入數字:
java CommandLineArgs -addnumbers 11 22 33 44
以上是如何在Java中使用命令列參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!