NoClassDefFoundError。

NoClassDefFoundError,这个异常在第一次使用命令行执行Java类时很可能会碰到,如下面这种情况:

    java -cp example.jar Example

在这个jar包里面只有一个类,这个类是net.test.Example,可能让你感到郁闷的是,明明在这个jar包里有这个类为什么会报如下错误呢?

这是因为你在命令行中没有加类的包名,正确的写法是这样的:

    java -cp example.jar net.test.Example

这里同时报了NoClassDefFoundError和ClassNotFoundException异常,原因是Java虚拟机隐式加载example.jar后再显式加载Example时没有找到这个类,所以是ClassNotFoundException引发了NoClassDefFoundError异常。

在JVM的规范中描述了出现NoClassDefFoundException可能的情况就是使用new关键字、属性引用某个类、继承了某个接口或类,以及方法的某个参数中引用了某个类,这时会触发JVM隐式加载这些类时发现这些类不存在的异常。

解决这个错误的办法就是确保每个类引用的类都在当前的classpath下面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值