2014-10-17 237 views
0

我是Java編程新手。爲什麼我會收到'ArrayIndexOutOfBoundsException'錯誤?

有人能幫助我用下面的代碼:

public class RandomSeq { 
 
\t public static void main(String[] args) { 
 
\t \t // command-line argument 
 
\t \t int N = Integer.parseInt(args[0]); 
 

 
\t \t // generate and print N numbers between 0 and 1 
 
\t \t for (int i = 0; i < N; i++) { 
 
\t \t \t System.out.println(Math.random()); 
 
\t \t } 
 
\t } 
 
}

我收到在編譯的時候出現以下錯誤信息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

預先感謝您。

[1]我使用64位Java 8(更新25)SE實現,使用64位Eclipse IDE for Java Developers(v。4.4.1)。

+0

你如何啓動應用程序? – 2014-10-17 04:55:46

回答

0

Run-> Run Configurations->Arguments->Enter your arguments separated by space->Apply->Run

確保合適的項目名稱和它的下運行配置

+0

解決。謝謝。 :) – User 2014-10-17 05:20:10

4

如果您在未給出參數列表(String[] args)的情況下運行main(),則會將args設爲空。

因此,索引0不是有效索引,因爲args爲空。

int N =Integer.parseInt(args[0]);// this cause ArrayIndexOutOfBoundsException 

如何在Eclipse中爲main()設置參數。 Read from here

+0

解決。非常感謝。 :) – User 2014-10-17 05:31:15

+0

@歡迎使用者 – 2014-10-17 05:32:20

0

這是因爲參數表是空的:

public class RandomSeq { 
    public static void main(String[] args) { 
     // command-line argument 
     if (args.length > 0) { 
      int N = Integer.parseInt(args[0]); 

      // generate and print N numbers between 0 and 1 
      for (int i = 0; i < N; i++) { 
       System.out.println(Math.random()); 
      } 
     } 
     else { 
      System.out.println("args is empty"); 
     } 
    } 
} 
0

其「主」選項卡下選擇的主要方法,因爲你'沒有傳遞任何值所以args []是空的。
當您使用Eclipse時,請轉至Run->Run Configuration-> Arguments,傳遞一些值。
你的代碼運行完好.. ..!

相關問題