有人可以解释System.out.println(args [0]);

时间:2014-02-21 21:32:01

标签: java

当我尝试运行此代码时

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)

我的代码出了什么问题?谢谢。

5 个答案:

答案 0 :(得分:3)

运行应用程序时,args参数将传递给main方法。如果没有参数传递给应用程序,则访问args数组的第一个索引将抛出ArrayIndexOutOfBoundsException

尝试从命令行运行应用程序,如下所示:

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

如果您使用的是Eclipse IDE程序,可以通过Run>设置参数。运行配置,然后选择您的程序并提供参数。

enter image description here

答案 1 :(得分:3)

运行您的程序,如

java Test foobar

foobararg[0]

但是你应该检查数组大小。

答案 2 :(得分:1)

将其作为

运行
$ java Test foo

将打印

foo

答案 3 :(得分:0)

使用以下内容运行它:

java package.to.Test arg0 arg1 arg2

答案 4 :(得分:0)

要扩展,超出范围的数组异常意味着您已尝试访问未由值填充的数组索引。在这种情况下,没有数据传递给args。您可以在Eclipse中设置参数,或者在从命令行运行程序时指定它们等。