【问题标题】:NoClassDefFoundError when trying to run JAR file [duplicate]尝试运行 JAR 文件时出现 NoClassDefFoundError [重复]
【发布时间】:2021-09-28 17:57:46
【问题描述】:

我遇到了 NoClassDefFoundError 的问题。在我的项目中,我使用 zip4j 外部库来解压缩文件。我使用:java 16、maven 和 IntelliJ。当我在 IDE 中运行我的应用程序时,一切正常。但是当我试图从 .jar 文件中运行它时,NoClassDefFoundError 会弹出。 zip4j的依赖如下图:

    <!-- https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j -->
    <dependency>
      <groupId>net.lingala.zip4j</groupId>
      <artifactId>zip4j</artifactId>
      <version>2.9.0</version>
    </dependency>

在我的主类中,我使用从 zip4j 导入的 ZipFile 对象。当我评论这一行时,.jar 文件被正确执行。这是我的应用程序/maven 无法将此库带到 .jar 文件的问题吗?我用各种可能的方式搜索了它。我在项目结构中添加了依赖项,它是从 maven 存储库下载的,但仍然没有。我在某处发红,这需要添加到 classPath - 我该怎么做?我现在正在尝试解决这个问题 5 个多小时,如果有人可以帮助我,那将是非常棒的。提前谢谢你。

【问题讨论】:

    标签: java maven intellij-idea


    【解决方案1】:

    Jar 中的文件结构与我们项目在 IDE 中的文件结构不同。在使用 Jars 时,我多次遇到过这个问题。为了更好地理解,请尝试解压缩 Jar 以查看内部文件结构。我通过使用以下代码行解决了它:

    Thread.currentThread().getContextClassLoader().getResource("filename").getPath();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-22
      • 2011-06-23
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多