求高人指点下面这段JAVA程序为什么编译通过了,还是不能运行

2025-01-05 16:47:41
推荐回答(4个)
回答1:

很简单啊,ArrayIndexOutofBoundsException是数组下标越界的错误。

数组元素 String类型的名为 args的数组 参数为args[0] args[1] args[2] args[3]... 如果你在cmd中运行的话可以直接在文件名后面加参数 那些参数就会传到args数组里。

这是要用命令行执行的,如果你是直接在myeclipse中右键执行的话是不行的 。

参考一下资料:

给你简单说下这个参数是怎么回事儿吧。首先你应该也知道的main方法是整个程序的入口方法,就是说整个程序一旦开始执行的话就会首先去找main方法。那么假设这么一种情况,写一个程序,输入2个字符串,然后让它在控制台直接输出,因为我们通过String[] args 可以直接向主方法中传值,所以可以写成
class Test
{
publicstatic void main(String[] args)
{
System.out.println(args[0]+" "+args[1]");
}
}
在运行这个程序的时候,在cmd中用javac命令编译,即javac Test.java然后用java命令执行,即java Test abc efg运行结果就是abc efg。这个说明了确实是在编译后通过外界直接向main方法中传值了,很多时候我们有必要向main方法中直接传值,初学的时候很少用到这个参数,很多情况下就是完全没有在用它,但是即便是没有用到,这个参数也不能不写,因为main方法就是规定这么写的

回答2:

废话。你的数组变量args是空的啊。你需要在int a=Integer.parsInt(args[0]);前面加一句:
args={"1","23"};
输出24

回答3:

运行的时候 给的 参数 太少了 ,没有 超过两个参数 ,数组就越界了

回答4:

arg没有生命长度