【问题标题】:Java Virtual Machine Launcher Error when presents particular piece of code呈现特定代码时出现 Java 虚拟机启动器错误
【发布时间】:2013-01-12 16:43:20
【问题描述】:

我有一个从 XML 文件中读取参数的代码。在调试器中一切正常,但是在我构建 JAR 文件并运行它之后 - 我得到以下窗口

Java 虚拟机启动器

发生了 Java 异常。

但如果我评论这段代码:

else if (settingName.equals("log_level")) {
    String value = element.getAttribute("value");
    if (value.equals("full")) {
        modelLogLevel = EnLogDetails.LOG_FULL;
    } else if (value.equals("apdu")) {
        modelLogLevel = EnLogDetails.LOG_APDU;
    } else if (value.equals("none")) {
        modelLogLevel = EnLogDetails.LOG_NONE;
    } else {
        throw new InvalidArgumentException(new String[]{"log_level"});
    }
}

并再次重建 JAR - 它工作正常。如何解决这个问题?

【问题讨论】:

  • ClassNotFoundException 我想?
  • throw new InvalidArgumentException(new String[]{"log_level"});这是什么意思?为什么不throw new InvalidArgumentException("log_level");
  • 我不是 Java 异常方面的专家,所以输入了InvalidArgumentException,Idea 导入了以下命名空间:com.sun.javaws.exceptions。此类没有带有字符串参数的构造函数。当我将异常类更改为 IllegalArgumentException 时 - 问题已解决。感谢您发送到正确答案!

标签: java jar intellij-idea


【解决方案1】:

您完全没有提供任何相关信息,例如实际异常或您正在使用的命令行,但显然您提供的 log_level 参数与任何这些测试都不匹配,因此您抛出了一个IllegalArgumentException 正在终止 main() 并因此终止启动器。如果是这样,我完全不知道为什么你需要来 StackOverflow 来向你解释你自己的代码。

否则对 EnLogDetails 的引用会以某种方式失败,这会在您未提供的异常中显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 2013-09-03
    • 2011-03-22
    相关资源
    最近更新 更多