передача аргументов запятой в Java - PullRequest
3 голосов
/ 13 августа 2010

Я передаю аргумент командной строки, используя Netbeans, но получаю ArrayIndexOutOfBoundsException.

Мой код:

public class CmdLineArgumentPassing

{

      public static void main(String args[])
      {        
         System.out.println("Count : " + args.length);

         System.out.println("i : "+args[0]);
      }
} 

Вывод:

Count : 0

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

Ответы [ 4 ]

5 голосов
/ 13 августа 2010

Щелкните правой кнопкой мыши по проекту, выберите «Свойства», перейдите на страницу «Выполнить», добавьте аргументы командной строки.

2 голосов
/ 13 августа 2010

Поскольку вы выводите Count : 0, то массив args имеет length, равный 0, что означает, что аргументы не передаются.

Когда вы пытаетесь получить доступ к первому аргументу, используя arg[0], вы получаете исключение, когда вы пытаетесь получить элемент массива, который не существует. В этом случае вы пытаетесь получить первый член пустого массива. Помните, что индексы массива начинаются с 0 и идут до length - 1.

Поскольку args пусто, это означает, что проблема в том, что Netbeans передает ваши аргументы, а не в коде, поэтому я предполагаю, что Netbeans не настроен должным образом.

0 голосов
/ 23 июля 2013

У меня были установлены аргументы в свойствах проекта / run / arguments, но я запускал класс напрямую (щелчок правой кнопкой мыши по файлу класса -> run), поэтому никаких аргументов из проекта, где он был передан, нет.Решением было сделать щелчок правой кнопкой мыши по проекту и выбрать опцию «Выполнить».Аргументы, которые были переданы.

0 голосов
/ 25 сентября 2010

Нажмите на Final proj и запустите, а не основной проект для netbeans 6.9. Вы получите ответ.

...