2013-07-02 192 views
0

這對你們來說可能很簡單,但是因爲我是java的新手,所以我想知道 究竟是什麼?Exacly(args.length> 0)是什麼意思?

if (args.length > 0) { 
    file = args[0]; 
} 


public class DomTest1 { 
    public static void main(String[] args) { 
     String file = "test1.xml"; 
     if (args.length > 0) { 
      file = args[0]; 
     } 
    } 
} 

回答

9

這些被稱爲命令行參數,您可以在程序中將其作爲字符串數組獲取。這是Oracle tutorial

Java應用程序可以從命令行接受任意數量的參數。這允許用戶在啓動應用程序時指定配置信息。

用戶在調用應用程序時輸入命令行參數,並在要運行的類的名稱後指定它們。

因此下面的代碼:

String file = "test1.xml"; 
if (args.length > 0) { 
    file = args[0]; 
} 

檢查以查看是否String[] args的長度大於0,這意味着它或檢查是否已輸入的任何命令行參數是數組爲空。如果輸入了命令行參數,則將該陣列的第一個元素或默認的file分配給filetest1.xml。你可以運行你的類如:

java DomTest1 someFileName.someExtension 

當一個應用程序啓動時,運行時系統通過一個字符串數組傳遞命令行參數到應用程序的主要方法。在前面的示例中,將命令行參數傳遞給包含單個字符串的數組中的DomTest1應用程序:「someFileName.someExtension」。

+0

感謝您的信息 – Bitopan

1

ARGS是Command Line arguments

當應用程序被啓動的陣列,運行時系統通過字符串

的陣列將命令行參數到應用程序的main方法其中argsan arrayif (args.length > 0)是指示數組是空還是空的條件。

0

該行正在檢查參數是否實際上是在命令行中輸入的。

如果輸入了任何內容,則第一個是文件的名稱。

如果未輸入任何內容,則默認爲test1.xml

+0

基本..但對我很有幫助 – Bitopan

0

args.length值是args數組中的項目數。

如果您沒有傳遞任何命令行參數,您將始終得到「有0個命令行參數」。

這就是爲什麼你檢查

if (args.length > 0) 

但嘗試運行的程序是這樣的:java的PrintArgs我的名字是mikki2話後的Java PrintArgs被稱爲命令行參數,因爲它們是從傳遞給你的程序的參數命令行

1

您在此處創建字符串引用並將值放入其中。 你的第一個值是> test1.xml。它是一個文件的名稱,但是您將字符串 作爲字符串(它表示「test1.xml」)。然後從命令行參數中獲取值。和0 所以你參考值將總是命令行的位置,您的字符串引用的首要價值命令行0的位置值,如果你不傳遞任何值,那麼它會給你text1.xml

0

main()的方法是其中java程序的執行開始。所有傳遞給main()方法的參數都是String args[]。它基本上是一個String數組。變量名稱可以更改爲其他內容,而不是僅使用args,您可以使用字符串var[]或`數據字符串[]或其他名稱。

現在,在您的程序if (args.length > 0)中檢查if條件。 我會解釋爲什麼arg.length是這樣的根本。

當從命令行或類似終端執行java程序時,它將以java customName的形式運行。讓我們說你想傳遞給java程序的參數爲java customName param1 param2。參數與命令行一起傳遞。現在,java中的解釋器解釋這些參數(即param1 param2)並將它們傳遞給程序的main()方法。這些參數存儲在args[]字符串數組中。

現在運行java程序args [0]和args [1]將被允許。如果沒有參數被傳遞,那麼args []的值將爲null,並且仍然會被標識爲String參數爲null的參數(沒有元素)。 在這種情況下,args.length將等於0.