打印args []数组的大小 - 超出范围异常错误

时间:2015-04-30 04:57:26

标签: java indexoutofboundsexception args

我理解为什么会抛出一个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)"

我不明白为什么。

提前谢谢

5 个答案:

答案 0 :(得分:1)

如果您没有将任何内容作为cmd行参数传递给程序,则args[]的大小将为0。在这里,您尝试访问[0],即第一个元素和[1],即第二个元素。因此例外。

答案 1 :(得分:1)

您需要使用java命令传递参数

java AddToCommandLine 1 2

其中AddToCommandLine是类名,1args[0]2args[1]

你现在没有传递任何论据,我想

答案 2 :(得分:1)

以下是command line arguments

的详细信息

我建议你写这样的东西,

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