我理解为什么会抛出一个outofbounds错误,但不是为什么会出现这种情况。
在课程教科书中,一些练习包括编写代码以打印出来的"命令行参数"和"添加其两个命令行参数"
我写的两个代码是:
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
和
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
System.out.println(x+1);
}
}
对于两者,我得到相同的"线程中的异常" main" j ava.lang.ArrayIndexOutOfBoundsException:0 在AddToCommandLine.main(AddToCommandLine.java:4)"
我不明白为什么。
提前谢谢
答案 0 :(得分:1)
如果您没有将任何内容作为cmd行参数传递给程序,则args[]
的大小将为0
。在这里,您尝试访问[0]
,即第一个元素和[1]
,即第二个元素。因此例外。
答案 1 :(得分:1)
您需要使用java
命令传递参数
java AddToCommandLine 1 2
其中AddToCommandLine
是类名,1
是args[0]
而2
是args[1]
你现在没有传递任何论据,我想
答案 2 :(得分:1)
我建议你写这样的东西,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
答案 3 :(得分:1)
如果你只运行你的程序而没有传递任何参数,那么args []的大小将为0.这里你试图访问[0],即第一个元素和[1],即第二个元素。因此例外。
我建议你写这样的东西,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
您需要使用java命令传递参数
java AddToCommandLine 1 2
如果你想从某个IDE运行,那么你必须去运行配置并在那里添加参数。
答案 4 :(得分:0)
你应该运行你的程序
java AddToCommandLine 5 4