Ява.яз..ArrayIndexOutOfBoundsException: 0
Я изучаю java, используя книгу. Есть одно упражнение, которое я не могу заставить работать должным образом. Он добавляет два двойника, используя класс java Double. Когда я пытаюсь запустить этот код в Eclipse, он выдает ошибку в заголовке.
public static void main(String[] args) {
Double d1 = Double.valueOf(args[0]);
Double d2 = Double.valueOf(args[1]);
double result = d1.doubleValue() + d2.doubleValue();
System.out.println(args[0] + "+" + args[1] + "=" + result);
}
2 ответа:
Задача
Это
ArrayIndexOutOfBoundsException: 0
означает, что индекс0
не является допустимым индексом для вашего массиваargs[]
, что в свою очередь означает, что Ваш массив пуст.В данном конкретном случае метода
main()
это означает, что ни один аргумент не был передан вашей программе в командной строке.Возможные решения
Если вы запускаете программу из командной строки, Не забудьте передать в команду 2 аргумента.
Если ты бежишь ... ваша программа в Eclipse, вы должны установить аргументы командной строки в конфигурации запуска. Перейдите в раздел
Run > Run configurations...
, а затем выберите вкладкуArguments
для конфигурации запуска и добавьте некоторые аргументы в область Program arguments.Обратите внимание, что вы должны обрабатывать случай, когда недостаточно аргументов дано , С чем-то вроде этого в начале вашего основного метода:
if (args.length < 2) { System.err.println("Not enough arguments received."); return; }
Это было бы изящно, вместо того, чтобы вызвать сбой вашей программы.