您好,登錄后才能下訂單哦!
小編給大家分享一下在Java中使用命令行參數的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
命令行參數可以是為應用程序指定配置屬性的一種方式,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中使用命令行參數的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。