2013-03-26 137 views
0

下面是我的書中的這個簡單代碼,它在netbeans和通過命令提示符運行的編譯版本(.class)版本中生成錯誤消息。Java錯誤「線程異常」main「java.lang.ArrayIndexOutOfBoundsException」

錯誤消息

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at intocm.Intocm.main(Intocm.java:17) 

簡單的程序轉換英寸到釐米。

package intocm; 

public class Intocm { 

    public static void main(String[] args) { 
     // TODO code application logic here 
     double inches; 
     inches = Double.valueOf(args[0]).doubleValue(); 
     double cm; 
     cm = inches * 2.54; 
     System.out.println(cm + "Centimeters"); 
    } 
} 

這會導致錯誤的行是

inches = Double.valueOf(args[0]).doubleValue(); 

我不知道爲什麼這陣「ARGS」造成這個錯誤,請幫助我理解這一點。

謝謝。

回答

5

您沒有傳遞命令行參數。 args[0]正在等待命令行參數。

,如果你是在命令行中運行它試試這個:

java Intocm 12.0 

在Eclipse

Run---> Run Configuration---> 
          Arguments Tab---> 
              give program arguments--> 
                    apply---> run 
+0

有無論如何,我可以運行在像NetBeans或eclipse軟件沒有任何錯誤。 – 2013-03-26 21:54:03

+0

@AsimQureshi檢查我的編輯 – PermGenError 2013-03-26 21:55:39

+0

它的作品,我試圖在命令行和netbeans謝謝.. – 2013-03-26 22:00:17

1

在一個類的方法mainargs參數是通過命令行參數提供。你沒有使用任何命令行參數調用jar,所以數組沒有零元素。

1

如果args[0]導致ArrayIndexOutOfBoundsException,那麼您沒有提供任何命令行參數。測試args.length;如果是0,則處理該錯誤。

相關問題