java.lang.NoClassDefFoundError: Could not initialize class xxx解决
今天测试的时候报了java.lang.NoClassDefFoundError错误,查了资料,简单来说就是JVM加载类时,会初始化类里的静态变量,或执行静态块,如果这个时候抛出了异常,该类就会加载失败。
日志中报NoClassDefFoundError异常的前面,应该会有一个java.lang.ExceptionInInitializerError异常(第一次new这个类的时候,后面再new这个类,会直接抛出NoClassDefFoundError异常),这个异常信息中才会有NoClassDefFoundError的原因。
我报错就是因为这个类中有一个静态常量,常量值来自于配置文件,但是由于配置文件中没有这个配置项,导致加载类时无法对该常量赋值,抛出java.lang.ExceptionInInitializerError和java.lang.NoClassDefFoundError异常。