2013-03-26 2 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(); 

Я не знаю, почему этот массив «арг» вызывает эту ошибку, пожалуйста, помогите мне понять это.

спасибо.

ответ

5

Вы не передаете аргументы командной строки. args[0] ожидает аргумент командной строки.

Если вы работаете ее из командной строки, попробуйте следующее:

java Intocm 12.0 

В затмении

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

В любом случае я могу запустить это в программном обеспечении, таком как netbeans или eclipse, без каких-либо ошибок. –

+0

@AsimQureshi проверить мое редактирование – PermGenError

+0

это работает и я пытался в comand line и netbeans спасибо .. –

1

Параметр args в main метод класса за поставляется аргументов командной строки. Вы не вызываете банку с любыми аргументами командной строки, поэтому массив не имеет нулевого элемента.

1

Если args[0] вызывает ArrayIndexOutOfBoundsException, то вы не указали параметры командной строки. Тест args.length; если это 0, тогда обработайте ошибку.

Смежные вопросы