由一次改包名引起的java.lang.NoClassDefFoundError异常

由一次改包名引起的java.lang.NoClassDefFoundError异常

调试项目过程中发现项目的包名与第三方的jar包存在冲突,于是将项目的包名类名进行修改,引起java.lang.NoClassDefFoundError异常

调试过程:

1.开启Spring包的debug级别日志,查找类加载过程中是否出现修改前的类名以及修改后的类名,同时加载的情况。

比如:修改前的类名:WxMpController;修改后的类名:WxDBController;

在Debug日志中都加载了这两个类,怎么回事呢??

一遍一遍的查看代码命名只有WxDBController这个类了,为什么还会加载到修改前的WxMpController

请看到的WEB-INF文件下的class文件,看看是否存在WxMpController.class文件。

最终解决办法:删除web-inf文件下的class文件,重新编译一次。删除tomcat路径下的编辑好的文件。

 

其它的原因请参考:https://blog.csdn.net/jamesjxin/article/details/46606307

Java.lang.NoClassDefFoundError异常通常发生在Java程序中,表示在运行时找不到某个类的定义。这个异常通常是由于类路径配置错误或者缺少相关的依赖库引起的。要解决这个异常,可以尝试以下几种方法: 1. 检查类路径:确保类路径配置正确,包括检查环境变量、类路径参数和项目构建工具(如Maven或Gradle)中的依赖配置。确保所需的类文件或JAR包在类路径中可用。 2. 检查依赖库:如果程序依赖于其他库或框架,确保这些依赖库已正确添加到类路径中。可以检查项目的构建配置文件(如pom.xml或build.gradle)来确认依赖项是否正确配置。 3. 检查类名和包名:确保类名和包名的大小写和拼写与代码中的定义一致。Java是区分大小写的,所以类名和包名必须精确匹配。 4. 检查编译和运行环境:确保代码在正确的编译和运行环境中执行。例如,如果代码是使用较新版本的Java编译的,但在较旧版本的Java运行时中执行,可能会导致NoClassDefFoundError异常。 5. 检查类加载器:如果使用自定义类加载器加载类,确保类加载器能够正确找到和加载所需的类。可以检查类加载器的实现和配置,以确保它们按预期工作。 6. 检查类文件或JAR包是否损坏:如果类文件或JAR包损坏或不完整,可能会导致NoClassDefFoundError异常。可以尝试重新下载或替换这些文件来解决问题。 这些方法可以帮助您解决Java.lang.NoClassDefFoundError异常。如果问题仍然存在,请提供更多的上下文信息,以便我能够提供更具体的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值