Java 有人能解释System.out.println(args[0])吗;

Java 有人能解释System.out.println(args[0])吗;,java,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) 我的代码怎么了?谢谢。应用程序运行时,

当我尝试运行此代码时

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)

我的代码怎么了?谢谢。

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

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

cd /Whatever/directory/contains/the/class
javac Test.java
java Test a b c 
如果您正在使用EclipseIDE,可以通过运行>运行配置,然后选择您的程序并提供参数来设置程序参数

将其作为

$ java Test foo
哪个会打印

foo
像这样运行你的程序

java Test foobar
foobar
arg[0]


不过,您应该检查数组大小。

使用以下方法运行它:

java package.to.Test arg0 arg1 arg2

要扩展,越界数组异常意味着您试图访问未填充值的数组索引。在本例中,没有向args传递任何数据。您可以在Eclipse中设置参数,也可以在从命令行运行程序时指定参数,等等。

您需要在运行程序时传递一些参数(至少一个)。您来自
C
背景吗
Java
不会像
C
那样用
argv[0]
打印文件名,您希望得到什么输出?@user3339005很高兴我能提供帮助!