打印 args[] 数组的大小 - 越界异常错误

Print Size of args[] array - out of bounds exception error

我明白为什么会抛出越界错误,但不明白为什么会出现这种情况。

在课本中,一些练习包括写代码给"print out its' command line argument"和"add its two command line arguements"

我写的两段代码是:

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);
    }
}

对于两者,我得到相同的 "Exception in thread "main"j ava.lang.ArrayIndexOutOfBoundsException: 0 在 AddToCommandLine.main(AddToCommandLine.java:4)"

我不明白为什么。

提前致谢

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

您需要使用 java 命令作为

传递参数
java AddToCommandLine 1 2

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

你现在还没有传递任何参数,我想

你应该运行你的程序

java AddToCommandLine 5 4

这里是 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");
    }
}

如果你只是 运行 你的程序而不传递任何参数,那么 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运行,那么你必须去运行配置并在那里添加参数。