关于NoClassDefFoundError解决心得

发布时间:2023年12月18日

容易混淆

NoClassDefFoundError和ClassNotFoundException

NoClassDefFoundError是引用异常,大概率是运行中找不到类的情况,也可能是其他情况。
ClassNotFoundException是类找不到,大概率是包引入问题。也有概率是被手动抛出来的。

这不是废话吗。

哈哈,提供一个思路。可以先按照这样排查。如果不是再详细排查

问题描述

Could not initialize class com.github.ltsopensource.core.support.JobUtils

此处就是初始化发生的异常,在静态块内。

解决过程

在这里插入图片描述

在这里插入图片描述

定位到此处

在这里插入图片描述

38行打断点

在这里插入图片描述
点击stackTrace,定位到异常处
在这里插入图片描述
发现是包了一层异常

异常处为63行

在这里插入图片描述

在doCompile处继续打断点

在这里插入图片描述

被误导的地方

此处我还以为是初始化的问题。被之前JobUtil误导了,认为是static出了问题
ClassPool pool = new ClassPool(true);
加上IDEA没有报红,于是朝着错误的地方找了好久。在static块打断点,一直没有走进去。于是继续追踪。

在这里插入图片描述
在这里插入图片描述
最终发现走到了java自己的加载方法里面了。才意识到,就是包缺失。

于是引入包,自此问题解决


	<dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>${javassist.version}</version>
    </dependency>

文章来源:https://blog.csdn.net/Ellen_Tangxiang/article/details/135061374
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。