以下是本书中的这个简单代码,它在netbeans和通过命令提示符运行的编译版本(.class)版本中生成错误消息。
错误消息
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at intocm.Intocm.main(Intocm.java:17)
将英寸转换为厘米的简单程序。
package intocm;
public class Intocm {
public static void main(String[] args) {
// TODO code application logic here
double inches;
inches = Double.valueOf(args[0]).doubleValue();
double cm;
cm = inches * 2.54;
System.out.println(cm + "Centimeters");
}
}
导致错误的行是
inches = Double.valueOf(args[0]).doubleValue();
我不知道为什么这个数组“args”会导致这个错误,请帮助我理解这个。
谢谢。
答案 0 :(得分:5)
您没有传递命令行参数。 args[0]
期待命令行参数。
如果从命令行运行它,请尝试:
java Intocm 12.0
在日食中
Run---> Run Configuration--->
Arguments Tab--->
give program arguments-->
apply---> run
答案 1 :(得分:1)
类的args
方法中的main
参数由命令行参数提供。您没有使用任何命令行参数调用jar,因此该数组没有零元素。
答案 2 :(得分:1)
如果args[0]
导致ArrayIndexOutOfBoundsException
,则您没有提供任何命令行参数。测试args.length
;如果是0
,则处理错误。