2014-02-21 3 views
-2

Когда я пытаюсь запустить этот кодМожет кто-нибудь объяснить System.out.println (args [0]);

public class Test{ 
    public static void main(String[] args){ 
     System.out.println(args[0]); 
    } 
} 

он бросает это исключение

Exception in thread "main" 
    java.lang.ArrayIndexOutOfBoundsException: 0 
at Test.main(Test.java:3) 

Что случилось с моим кодом? Спасибо.

+11

Вам нужно передать некоторые аргументы при запуске вашей программы (хотя бы один). –

+5

Вы идете с фона 'C'? 'Java' does * not * печатает имя файла типа' C' с 'argv [0]' –

+0

Какой результат вы ожидали? –

ответ

3

Параметр args передается методу main при запуске приложения. Если никакие аргументы не передаются приложению, обращающемуся к первому индексу массива args, он выдает ArrayIndexOutOfBoundsException.

Попробуйте запустить приложение из командной строки следующим образом:

cd /Whatever/directory/contains/the/class 
javac Test.java 
java Test a b c 

Если вы используете аргументы программы Eclipse IDE можно установить Run> Run Configurations, а затем выберите программу и подачи аргументов.

enter image description here

+0

спасибо, что это хорошо работает – user3339005

+0

@ user3339005 Рад, что я мог помочь! –

1

Выполнить это как

$ java Test foo 

, который будет печатать

foo 
3

Запустите программу как

java Test foobar 

foobar является arg[0].

Однако вы должны проверить размеры массива.

0

Выполнить это что-то вроде этого:

java package.to.Test arg0 arg1 arg2 
0

Для расширения, вне границ массива исключение означает, что вы пытались получить доступ к индексу массива, который не заполняется значением. В этом случае в args данные не передавались. Вы можете установить аргументы в Eclipse или указать их при запуске вашей программы из командной строки и т. Д.

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