Java 简单命令行程序引发异常

Java 简单命令行程序引发异常,java,Java,我知道这是一个简单的问题,但它产生了一些不寻常的问题 public static void main(String [] st) { System.out.println("\n\n Arg: :"+st.length); for(int i=0;i<st.length;i++) { System.out.println("ARGUMENTS: "+st[i]); } } 但它抛出了一个例外。 所以请帮我解决这个问题。我想它是在抱怨你有一个索引越

我知道这是一个简单的问题,但它产生了一些不寻常的问题

public static void main(String [] st) {

    System.out.println("\n\n Arg: :"+st.length);
    for(int i=0;i<st.length;i++) {
        System.out.println("ARGUMENTS: "+st[i]);
    }
}
但它抛出了一个例外。
所以请帮我解决这个问题。

我想它是在抱怨你有一个索引越界异常,这意味着你试图访问索引
0
处的字符串,而没有这样的字符串


解决此问题的两种方法是仔细查看异常(假设您知道它的含义)或在调试器中单步执行代码,这将使问题更清楚。

如果启动程序时未向程序传递任何参数,则
st
将为空。因此,尝试引用数组中的第一个项将抛出一个
NullPointerException

参见和的教程


与C和其他一些语言的一个特殊区别是程序名本身不是参数之一,因此,虽然C
main
函数总是至少有一个参数,但Java
main
却没有。

问题出在哪里——根本没有任何参数。您是否在命令行上传递了任何消息?我以前运行过这个程序,但现在它会产生问题,并且st[]不需要初始化。您可以将异常、NullPointException..?异常粘贴到线程“main”中吗java.lang.ArrayIndexOutOfBoundsException:0,当我运行此程序时,它立即终止,甚至不等待从命令行输入字符串。您是否为程序提供了任何参数?您能准确地显示如何调用(启动)它吗?最近,正如Michael Brewer Davis所建议的(字符串s:st){System.out.println(s);}但它不显示Enythig。现在,它正在工作,这是Eclipse中JDK的问题配置。谢谢你的回答。
String s= st[0];
System.out.println("\n String: "+s);