CLASS动态类加载报NoClassDefFoundError

项目中遇到一个defect。
代码所示:
class Singleton {
    static {
        this.variable = XXXUtil.method();
    }

    private Singleton instance = new Singleton();

    public static Singleton getInstance() {...}

}

class XXXInvokeClass {
    void xxxMethod() {
        Singleton.getInstance();
    }
}


出错提示在xxxMethod()方法这里,总是报NoClassDefFoundError
经调试,是class被jvm首次加载时,初始化静态定义时出了错,是XXXUtil类没有method方法,即NoSuchMethodException,但是LOG日志并未直接写出来。
代码编译通过,运行出错,原因是XXXUtil过期,未被服务器加载到最新的代码所致。

通过此defect又重温了一遍java class类加载机制。
http://onjava.com/pub/a/onjava/2005/01/26/classloading.html

你可能感兴趣的:(java)