java.lang.NoClassDefFoundError异常原因分析
背景:新写了一个单例的类,在其他的类中类调用其方法,结果报异常。
异常:java.lang.NoClassDefFoundError
看到了java.lang.NoClassDefFoundError 这个异常,大家首先想到的就是当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
于是本人确认再三,单例的类确实已经有了。可是为啥还会报这个错呢?
于是分析了一下代码,发现报的异常不是 ClassNotFoundException ,于是找类对应的方法,我发现在单例的静态初始化的时候输出没有打印,找了一下,果然有bug,遂改之。测之,完美解决。所以总结如下:
java.lang.NoClassDefFoundError 异常发生原因:
一、 没有找到具有指定名称的类的定义。
二、静态块加载时报异常,也会报这个错。