原创

【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日,已超过 476 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
本文目录