【问题标题】:Java NoClassDefFoundError even when Jars in same folderJava NoClassDefFoundError 即使在同一文件夹中的 Jars
【发布时间】:2013-04-02 19:28:31
【问题描述】:

我创建了一个简单的 Java 程序(1 个包含 main() 的 java 文件),并且我已将所有 Jar 文件包含在与 .class 文件相同的目录中。它给出了 NoClassDefFoundError 消息。

我已经尝试更新 Classpath 以指向该目录,并且我还设置了“-cp”。建议它与 .class 文件位于同一目录中。但是程序还是说找不到类def。

对我应该做什么有什么想法吗?

【问题讨论】:

  • 哪个类,哪个罐子,哪个代码?瓦特?
  • 抱歉有任何混淆。我的程序是一个包含 main() 的 java 类。我的程序需要引用几个包 (*.jar)。我希望这会有所帮助。
  • 问题已解决:我已经更新了 Windows 操作系统中的类路径,但我需要在新的命令窗口中运行 Java 程序......所以新的类路径将处于活动状态。谢谢你的帮助!

标签: java noclassdeffounderror


【解决方案1】:

添加一个文件夹会告诉 java 在该文件夹中查找 .class 文件。 您不能通过文件夹名称引用 .jar 文件...每个 .jar 文件的路径必须明确列在 CLASS_PATH 中。

this question's answer may be useful

【讨论】:

    【解决方案2】:

    当你尝试从命令行运行一个类时,一个 NoClassDefFound 异常通常意味着你的类路径有问题。

    您已经明确定义了类路径。您可以通过几种方式做到这一点,但以下方式最不容易出错:

    打开命令外壳并执行以下操作:

    1.) 设置类路径 = {类文件的路径};{jar 的路径}

    2.) java com.example.mainclass

    注意:即使您的类路径和 jar 路径相同,您也需要明确指定它们。

    注意:如果您有多个 jar,请将它们放在一个文件夹中,例如 lib 并将其添加到类路径中,例如:{path}/lib/* 这将包括所有 jar,否则您必须单独指定它们。

    参考资料: https://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html

    【讨论】:

      【解决方案3】:

      导入以下包:

      Import java.lang.NoClassDefFoundError;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-12
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 2013-10-15
        • 2015-04-25
        • 1970-01-01
        • 2017-09-07
        相关资源
        最近更新 更多