首页 > 解决方案 > IntelliJ - Maven 添加外部 jar 文件但 java.lang.NoClassDefFoundError

问题描述

我正在使用 IntelliJ 版本 11.0.7 (2020.1.3) 创建了一个简单的 maven 项目并将我的 jar 添加到其中

文件 -> 项目结构 -> 新建项目库 -> Java -> 选择我的 jar -> 确定 -> 确定

在该 jar 文件中,存在运行应用程序所需的所有依赖项。

没有编译时错误,但是当我运行我的 Maven 项目时,它会抛出这个异常:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException

添加此 jar 后,它会引发下一个丢失的 jar 异常,同样,当我添加该 jar 中使用的所有依赖项时,一切正常。

当我添加到外部库时,有什么方法可以自动生成所有依赖项并从 jar 中添加到外部库中?

标签: javamavenintellij-idea

解决方案


in that jar file, there are all the dependencies present which requires to run the application.

您确定所有依赖项都存在吗?你的下一个声明说After adding this jar it is throwing exception about the next missing jar, likewise when I added all the dependencies which are used inside that jar then everything works fine.

您的 jar 文件是否托管在 maven 存储库中?如果是,只需在 mavenpom.xml文件中声明它,它将管理所有传递依赖项。如果它不在 maven 存储库中,您需要运行mvn install命令将其安装到本地 maven 存储库中,稍后在您的pom.xml文件中引用它。如果您正确打包包含正确pom.xml内部的 jar 文件,它也会自动解决您的传递依赖项。


推荐阅读