2014-02-21 38 views
-2

當我嘗試運行此代碼有人可以解釋System.out.println(args [0]);

public class Test{ 
    public static void main(String[] args){ 
     System.out.println(args[0]); 
    } 
} 

它拋出該異常

Exception in thread "main" 
    java.lang.ArrayIndexOutOfBoundsException: 0 
at Test.main(Test.java:3) 

這有什麼錯我的代碼?謝謝。

+11

在運行程序(至少一個)時,您需要傳遞一些參數。 –

+5

你來自'C'背景嗎? 'Java'確實不會*打印文件的名字,就像'argv [0]'會出現'C'一樣' –

+0

你期待什麼輸出? –

回答

3

當應用程序運行時,參數args傳遞給main方法。如果沒有參數傳遞給訪問args數組的第一個索引的應用程序,則會拋出ArrayIndexOutOfBoundsException

嘗試在命令行中運行應用程序如下:

cd /Whatever/directory/contains/the/class 
javac Test.java 
java Test a b c 

如果您使用的是Eclipse IDE的程序參數可以通過運行>運行配置設置,然後選擇您的程序和提供參數。

enter image description here

+0

感謝它的工作正常 – user3339005

+0

@ user3339005很高興我能幫忙! –

1

運行它

$ java Test foo 

,它將打印

foo 
3

運行程序一樣

java Test foobar 

foobararg[0]

雖然你應該檢查數組大小。

0

的是這樣運行:

java package.to.Test arg0 arg1 arg2 
0

擴大,一個徹頭徹尾的越界陣列異常意味着你已經嘗試訪問不是由值填充的數組索引。在這種情況下,沒有數據被傳遞給參數。您可以在Eclipse中設置參數或在從命令行運行程序時指定它們等。