【问题标题】:Exception in thread "main" in java. Very simple code, before it worked without issues [duplicate]java中线程“main”中的异常。非常简单的代码,在它没有问题之前[重复]
【发布时间】:2020-10-15 10:00:14
【问题描述】:

我遇到了错误。

我编写了需要命令行参数的简单程序。

class UseArgument {
  public static void main(String[] args) {
    System.out.print("Hello, ");
    System.out.print(args[0]);
    System.out.println("How is it going?");
  }
}

我之前在 Ubuntu 终端上使用过它,并且一切正常。现在我正在使用另一台笔记本电脑,当我复制完全相同的代码时发生以下异常:

你好,线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:索引 0 超出范围 UseArgument.main(UseArgument.java:5) 处的长度为 0

非常感谢您提供如何更改它的建议。

【问题讨论】:

  • 在运行代码时是否传递了任何运行时参数?
  • if (args.length > 0) System.out.print(args[0]);

标签: java ubuntu exception


【解决方案1】:

错误信息告诉你:没有传入任何参数,所以当你要求args[0](这是第一个参数)时,代码会抛出该异常以表明没有答案'请提供第一个参数'。

使用实际参数调用您的代码,例如java MyClass World - 将打印 Hello, World

【讨论】:

    【解决方案2】:

    args[0] 引用第一个参数。如果您未提供任何参数,则会导致 ArrayIndexOutOfBoundsException,因为 args 没有索引为 0 的成员(更一般地说:它将为空且长度为 0)。

    可能之前用类似这样的东西给你的班级打电话:java UseArgument Bob,它奏效了。当你只用java UseArgument 调用它时,它会以这种方式失败。

    【讨论】:

    • 谢谢,我知道这是一个非常基本的问题,但我试图在代码中解决问题,而不是命令行。现在一切正常!
    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2017-03-27
    • 2015-08-07
    • 2011-07-07
    相关资源
    最近更新 更多