2013-03-26 136 views
0

下面是我的书中的这个简单代码,它在netbeans和通过命令提示符运行的编译版本(.class)版本中生成错误消息。Java错误“线程异常”main“java.lang.ArrayIndexOutOfBoundsException”

错误消息

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”造成这个错误,请帮助我理解这一点。

谢谢。

回答

5

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

,如果你是在命令行中运行它试试这个:

java Intocm 12.0 

在Eclipse

Run---> Run Configuration---> 
          Arguments Tab---> 
              give program arguments--> 
                    apply---> run 
+0

有无论如何,我可以运行在像NetBeans或eclipse软件没有任何错误。 – 2013-03-26 21:54:03

+0

@AsimQureshi检查我的编辑 – PermGenError 2013-03-26 21:55:39

+0

它的作品,我试图在命令行和netbeans谢谢.. – 2013-03-26 22:00:17

1

在一个类的方法mainargs参数是通过命令行参数提供。你没有使用任何命令行参数调用jar,所以数组没有零元素。

1

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

相关问题