无法理解问题出在哪里(Java)

时间:2019-09-03 14:55:35

标签: java indexoutofboundsexception noclassdeffounderror

尝试运行交换名称的程序。任务很简单:输入> Alice Bob Alex,输出> Alex Bob Alice P.s.也许这个问题很愚蠢,但是我最近才开始编程,所以我不知道该怎么办

我尝试在Eclipse中运行代码-给出索引错误。我从控制台开始-给出一个错误的主要名称。试图通过Eclipse中的内部调试器-写道我正在使用过时的方法。最后,什么都不是。/

public class Noob {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.print(args[2]);
        System.out.print(" " + args[1]);
        System.out.println(" " + args[0]);
    }
}
  1. Eclipse的错误消息:

线程“ main”中的异常java.lang.ArrayIndexOutOfBoundsException:索引2的长度为0超出范围     在noob / noob.Noob.main(Noob.java:7)

  1. 控制台(文件名为Noob.java)
    1. 首先我编译了src文件(> javac Noob.java)
    2. 然后我运行了它(> Java Noob)

错误:找不到或加载主类Noob 原因:java.lang.NoClassDefFoundError:noob / Noob(错误的名称:Noob)

3 个答案:

答案 0 :(得分:3)

您需要传递三个参数

这是传递参数所需遵循的步骤

1-)单击运行->运行配置

2-)单击“参数”选项卡

3-)在“程序参数”部分中,输入您的参数。

4-)单击应用

答案 1 :(得分:0)

您没有正确将值传递给程序。如果您使用java myProgram Alice Bob Alex从命令行调用程序,则您的代码应该可以使用。

此外,您可以直接在“运行配置”选项内通过Eclipse将值传递给代码。

答案 2 :(得分:0)

此外,最好不要对值进行硬编码。试试这个:

for (int i=args.length-1; i>=0; i--) {
    System.out.print(args[i] + ' ');
}
System.out.println("");