同事遇到了NoClassDefFoundError的问题,但是看路径相关java文件都是在的,运行时却会报这个错误;
基础知识储备:
1、NoClassDefFoundError 不同于ClassNotFoundException,后者出现在编译期间找不到文件,前者出现在运行期间
排查方向建议:
可以看一下报错的这个类,是否有一些静态属性,在类加载的过程中出错,也可能会报NoClassDefFoundError的错误
咨询群回答:“class初始化失败抛异常被吞,然后就noclassdef了”
示例:
public class NoClassDefFoundTest {
public static void main(String args[]){
List users = new ArrayList(2);
for(int i=0; i<2; i++){
try{
users.add(new User());
}catch(Throwable t){
t.printStackTrace();
}
}
}
}
class User{
private static String defaultUserId = getUserId();
private static String getUserId() {
throw new RuntimeException("test");
}
}
控制台
推荐查阅:https://blog.csdn.net/jamesjxin/article/details/46606307



