小編給大家分享一下在Java中使用命令行參數(shù)的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、武勝ssl等。為超過(guò)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的武勝網(wǎng)站制作公司命令行參數(shù)可以是為應(yīng)用程序指定配置屬性的一種方式,Java也不例外。您可以從終端窗口運(yùn)行Java應(yīng)用程序,而不是單擊操作系統(tǒng)中的應(yīng)用程序圖標(biāo) 。除了應(yīng)用程序名稱之外,還可以跟隨許多參數(shù),然后將這些參數(shù)傳遞給應(yīng)用程序的起始點(diǎn)(即,在Java的情況下為main方法)。
例如,NetBeans具有許多啟動(dòng)參數(shù),當(dāng)從終端窗口運(yùn)行時(shí),可以將這些參數(shù)傳遞給應(yīng)用程序(例如,-jdkhome 指定要使用的JDK的版本,而不是與NetBeans應(yīng)用程序關(guān)聯(lián)的默認(rèn)JDK)。
main方法
讓我們檢查一下main方法 ,看看傳遞給應(yīng)用程序的參數(shù)出現(xiàn)在哪里:
public static void main(String[] args) { ...do something here }
命令行參數(shù)可以在名為的String 數(shù)組中找到args。
例如,讓我們考慮一個(gè)被調(diào)用的應(yīng)用程序,CommandLineArgs其唯一的操作是打印傳遞給它的命令行參數(shù):
public class CommandLineArgs { public static void main(String[] args) { //檢查字符串?dāng)?shù)組是否為空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } //對(duì)于字符串?dāng)?shù)組中的每個(gè)字符串 //打印出字符串。 for(String argument: args) { System.out.println(argument); } } }
命令行參數(shù)的語(yǔ)法
Java運(yùn)行時(shí)引擎(JRE)期望遵循特定語(yǔ)法傳遞參數(shù),如下所示:
java ProgramName value1 value2
在上面,“java”調(diào)用JRE,后跟您正在調(diào)用的程序的名稱。接下來(lái)是程序的任何參數(shù)。程序可以采用的參數(shù)數(shù)量沒(méi)有限制,但順序很重要。JRE按照它們?cè)诿钚兄谐霈F(xiàn)的順序傳遞參數(shù)。例如,請(qǐng)考慮以上代碼段:
public class CommandLineArgs2 { public static void main(String[] args) { if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); }
當(dāng)參數(shù)傳遞給Java程序時(shí),args[0]是數(shù)組的第一個(gè)元素(上面的value1), args[1]是第二個(gè)元素(value2),以此類推。length()代碼定義了數(shù)組的長(zhǎng)度。
通過(guò)命令行參數(shù)
在NetBeans中,我們可以傳遞命令行參數(shù),而不必構(gòu)建應(yīng)用程序并從終端窗口運(yùn)行它。要指定命令行參數(shù):
右鍵單擊“項(xiàng)目”窗口中的“項(xiàng)目”文件夾。
選擇Properties選項(xiàng)以打開(kāi)項(xiàng)目屬性窗口。
在右邊的Categories列表中,選擇Run。
在出現(xiàn)的Arguments文本框中,指定要傳遞給應(yīng)用程序的命令行參數(shù)。例如,如果我們?cè)贏rguments文本框中輸入Apple Banana Carrot并運(yùn)行上面列出的CommandLineArgs程序,我們將得到輸出:
Apple Banana Carrot
解析命令行參數(shù)
通常,會(huì)傳遞一個(gè)命令行參數(shù),其中包含一些關(guān)于如何處理傳遞的值的信息。通知應(yīng)用程序參數(shù)的參數(shù)通常在其名稱前有一兩個(gè)連字符。例如,用于指定JDK路徑的啟動(dòng)參數(shù)的NetBeans示例是-jdkhome。
這意味著您需要解析命令行參數(shù),以確定如何處理這些值。有幾個(gè)用于解析命令行參數(shù)的Java命令行框架?;蛘?,如果需要傳遞的參數(shù)不多,也可以編寫(xiě)一個(gè)簡(jiǎn)單的命令行解析器:
public class CommandLineArgs { //命令行參數(shù): // -打印輸出輸出它后面的所有參數(shù) //addnumbers在后面添加所有的數(shù)字參數(shù) public static void main(String[] args) { //檢查字符串?dāng)?shù)組是否為空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } else { // 設(shè)置一些初始變量 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); } } } }
上面的代碼要么打印參數(shù),要么將它們相加(如果它們是整數(shù))。例如,這個(gè)命令行參數(shù)將添加數(shù)字:
java CommandLineArgs -addnumbers 11 22 33 44
看完了這篇文章,相信你對(duì)在Java中使用命令行參數(shù)的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。