【Java】记一次NoClassDefFoundError错误修复
前言
一次简单的小程序开发,本地运行的好好的,放到服务器上运行就报错
Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException
异常说明
java.lang.NoClassDefFoundError
是Java中的一个运行时异常,表示某个类在运行时无法找到。这通常是由以下几种情况引起的:
缺少依赖项:如果在运行Java程序时缺少了需要的类文件或JAR包,就会抛出NoClassDefFoundError
。请确保您的程序所需要的所有依赖项都已正确地导入和配置。
类路径错误:如果类文件或JAR包存在于程序的类路径中却无法被找到,也会引发此异常。请检查您的类路径设置,并确保它们指向正确的位置。
版本不匹配:有时候,当类文件的版本与程序运行时所使用的Java版本不兼容时,也会出现NoClassDefFoundError
。请检查您的程序和依赖项的Java版本,并进行必要的更新。
类文件损坏:如果类文件本身损坏或不完整,也会导致NoClassDefFoundError
。在这种情况下,重新编译或获取正确的类文件可能会解决问题。
请根据具体情况检查和解决上述问题,以解决NoClassDefFoundError异常。
排查
首次排查了依赖是否引入:查看pom.xml
文件,依赖内容如下:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<scope>provided</scope>
</dependency>
看起来似乎没啥问题(重点),到打包的lib目录中查看,文件也已经放进去了dom4j-1.6.1.jar
重新运行mvn打包命令,查看打包的产物中的META-INF
/MANIFEST.MF
中的Class-Path
搜索dom
关键字,发现没有
由此知道了依赖引入的还是有问题
解决
调整pom.xml
中的依赖配置,去掉scope
即可。
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
本文来自:【Java】记一次NoClassDefFoundError错误修复-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2023年08月03日,已超过 488 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束
- 本文标签: null
- 本文链接: https://djc8.cn/archives/java-record-a-noclassdeffounderror-error-fix.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权