Java问题笔记:NoClassDefFoundError
Java问题笔记:NoClassDefFoundError
问题现象
直接报NoClassDefFoundError。
解决思路
首先我们先了解一下这个异常:
NoClassDefFoundError表明当前执行的类已经编译,但是找不到它的定义时。也就是说你如果编译了一个类B,在类A中调用,编译完成以后,你又删除掉B,运行A的时候那么就会出现这个错误。
抛开人为删除的可能性,这个一般是重复类导致的,如果你确定你的类不重复,那就是你的类依赖的类有问题,你可以在Debug时查找当前类或依赖类的是来自那个jar,看加载的是不是来自错误的Jar.
Thread.currentThread().getContextClassLoader().getResource("org/apache/http/impl/client/HttpClientBuilder.class")
特别需要注意的是,getResource("类的全路径,注意class结尾")。
执行完成之后,关注file字段显示的jar路径是否是正确的,如果不正确,就删掉他或者相办法替换他!