NoClassDefFoundError原因
展开全部
java开发中经常遇到java.lang.ClassNotfoundException异常,ClassNotfoundException异常一般就是编译时找不到类,Console台就会输出异常信息。一般情况下,我们都会rebuild或者clean一下工程,让项目重新编译一遍。
不过一遇到NoClassDefFoundError,我们有时也容易和ClassNotfoundException异常混淆。虽然NoClassDefFoundError和ClassNotfoundException异常出现原因类似,都是因为编译加载不到类导致的,但是却有本质的区别。
为什么会发生NoClassDefFoundError错误?
其实就是和Java虚拟机的工作原理有关了,下面简单介绍一下JVM的类加载机制
JVM的类加载机制的委托行机制,决定了类加载器只加载一次,子类加载器不会再加载父类加载器已经加载过的类
所有在一些特定条件下就会出现编译时可以加载到类,运行时不可以加载到类,这时候就会出现java.lang.NoClassDefFoundError异常
目前有发现几种情况
1、一种情况就是因为静态变量加载不到原因
2、工程里没有将jar添加到classpath,maven项目的,需要根据项目情况排查
不过一遇到NoClassDefFoundError,我们有时也容易和ClassNotfoundException异常混淆。虽然NoClassDefFoundError和ClassNotfoundException异常出现原因类似,都是因为编译加载不到类导致的,但是却有本质的区别。
为什么会发生NoClassDefFoundError错误?
其实就是和Java虚拟机的工作原理有关了,下面简单介绍一下JVM的类加载机制
JVM的类加载机制的委托行机制,决定了类加载器只加载一次,子类加载器不会再加载父类加载器已经加载过的类
所有在一些特定条件下就会出现编译时可以加载到类,运行时不可以加载到类,这时候就会出现java.lang.NoClassDefFoundError异常
目前有发现几种情况
1、一种情况就是因为静态变量加载不到原因
2、工程里没有将jar添加到classpath,maven项目的,需要根据项目情况排查
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
微测检测5.10
2023-07-11 广告
2023-07-11 广告
IEC62133 是国际电子电工委员会颁布的标准,做CB认证用的! EN62133 是欧盟颁布的,做CE认证用!深圳市微测检测有限公司 可以做IEC62133 也可以做EN62133 ,只是测试的标准不同,全国咨询电话:400-666-16...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询