classnotfoundexception vs NoClassDefFoundError

本文详细解释了Java中ClassNotFoundException和NoClassDefFoundError的区别及其产生的原因,包括类加载失败的具体场景,如编译期依赖的类在运行时未找到等情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

classnotfoundexception :

产生原因:主要是调用Class.forName(), classLoader.loadClass(), class.findSystemClass()时,需要加载一个类到内存中时,抛出的异常。

哪些情况会出现:

1)框架或者web容器通过Class.forName()加载一个类,找不到类时

2)框架或者web容器通过Class.forName()加载一个类,存在不同版本的同名jar包,且包含重复的类。即出现了Jar包冲突。


 NoClassDefFoundError:

主要是在new创建对象的时候,找不到类抛出的Error。

哪些情况会出现:

1)编译期依赖的类,在运行期间找不到了。可能是编译期依赖的jar包,在运行期间没有在classpath中找到。

2)编译期依赖的类,在运行期间找不到了。可能是因为Jar包冲突导致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值