0

这是我书中的这个简单代码,它在 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”会导致这个错误,请帮助我理解这一点。

谢谢你。

4

3 回答 3

5

您没有传递命令行参数。args[0]期待命令行参数。

如果您从命令行运行它,请尝试以下操作:

java Intocm 12.0

在日食

Run---> Run Configuration--->
                            Arguments Tab--->
                                            give program arguments-->
                                                                  apply---> run
于 2013-03-26T21:53:12.810 回答
1

如果args[0]导致ArrayIndexOutOfBoundsException,那么您没有提供任何命令行参数。测试args.length;如果是0,则处理错误。

于 2013-03-26T21:53:38.387 回答
1

args类方法中的参数main由命令行参数提供。您没有使用任何命令行参数调用 jar,因此该数组没有零元素。

于 2013-03-26T21:53:19.450 回答