【问题标题】:Print Size of args[] array - out of bounds exception errorargs[] 数组的打印大小 - 超出范围异常错误
【发布时间】:2015-07-09 15:49:36
【问题描述】:

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

在课程教科书中,一些练习包括编写代码以“打印出它的'命令行参数”和“添加它的两个命令行参数”

我写的两个代码是:

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)"

我不明白为什么。

提前谢谢你

【问题讨论】:

  • 你没有传递任何命令行参数给这个
  • 你是如何执行你的程序的?你是如何传递参数的?
  • 你应该在运行程序时给出命令行参数
  • 我一直在使用(或尝试)使用 Eclipse……非常愚蠢! :)

标签: java indexoutofboundsexception args


【解决方案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 运行,那么你必须去运行配置并在那里添加参数。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      java AddToCommandLine 1 2
      

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

      我认为你现在没有传递任何论据

      【讨论】:

        【解决方案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");
            }
        }
        

        【讨论】:

          【解决方案5】:

          你应该像这样运行你的程序

          java AddToCommandLine 5 4

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-06-19
            • 1970-01-01
            • 1970-01-01
            • 2016-04-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多