ArrayIndexOutOfBounds使用Java编译的程序的异常

时间:2014-06-27 10:26:40

标签: java

我是java的新手。我的代码是:

public class Hi {
        public static void main(String[] args) {
        System.out.print("Hi, ");
        System.out.print(args[2]);
        System.out.print(",");
        System.out.print(args[1]);
        System.out.print(", and");
        System.out.print(args[0]);
        System.out.println(".");
    }
}

运行此程序时出现以下异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Hi.main(Hi.java:5)

我很高兴知道为什么我有这个例外以及如何解决它。

3 个答案:

答案 0 :(得分:0)

您传递的参数小于3,这就是您收到此错误的原因。

尝试下面的命令,

java hi test test test

答案 1 :(得分:0)

要么在执行程序时传递命令行参数,要么 args.length< 3

答案 2 :(得分:0)

如果您尝试运行此程序提供2个或更少的参数,则会出现此异常。

  • args[0]将成为数组的第一个索引。
  • args[1]将是第二个索引。
  • args[2]将是数组的第三个索引。

这是因为对于Java中的数组,数组索引以0开头并以n-1结尾。 (n是数组的大小)。

命令行方式

如果您运行该程序,此程序将运行正常 java Hi Demo Test Argument

此处Demo位于args[0]Test位于args[1]Argument位于args[2]

使用Eclipse IDE

  • 右键单击类文件。
  • 选择Run As并选择Run Configurations
  • 双击Java Application
  • 转到Arguments标签,在Program Arguments textarea中提供三个以空格分隔的参数,如下图所示。 enter image description here
  • 现在点击Apply,然后点击Run