String [] args参数:java.lang.ArrayIndexOutOfBoundsException

时间:2013-09-25 14:05:17

标签: java

您好我是一名java学习者并试图让这个程序添加两个数字。 在运行这个时我收到了这个错误信息..

  

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0           在addnumber.main(addnumber.java:16)   Java结果:1

public class addnumber{
   public static void main(String[] args) {
        String x,y;
        int a,b,c;
        x=args[0];
        y=args[1];
        a=Integer.parseInt(x);
        b=Integer.parseInt(y);
        c=a+b;
        System.out.println(c);
   }
}

我知道我可以使用Scanner类或字符串构建器类但是这个代码有什么问题吗?

3 个答案:

答案 0 :(得分:1)

如果你使用args-array,你必须从程序外部给一些参数,例如从控制台。

然后打开控制台并转到.java文件所在的目录,并使用

手动编译
javac Addnumber.java

现在你应该看到一个.class文件。

比写这样的电话:

java Addnumber 5 9 

你的论点是5和9.

同时在大写字母中输入类名

答案 1 :(得分:0)

如果您使用eclipse或任何其他工作工具运行。那么你必须设置运行配置参数。

假设您在命令行中运行此代码,则必须使用以下命令

运行此代码
java addnumber 2 4

答案 2 :(得分:0)

好的问题,问题String[] args,这个问题导致找出这个参数的初始值是什么?或者换句话说,IDE如何调用main方法?如果您在Netbeans或Eclipse中运行此代码,则默认情况下将打印此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:

因为默认情况下IDE调用方法的字符串数组为0长度:

TheNameOfClass.main(new String[0]) // if you run it in some IDEs
>java Addnumber  // cmd with no args?

在您的情况下,异常将在行x=args[0];中发生,因为您调用并且您希望使用数组中的某个项超出范围或大于数组的长度。

现在你可以在eclipse中配置它作为示例来传递一些Strings值,因为你需要 OR 你需要在'命令提示符'中编译和运行java类手册并传递一些字符串值:

>javac Addnumber.java // compile it 
>java Addnumber 1 77  // run it and passs some values to array in main method