ClassNotFoundException和NoClassDefFoundError的区别

ClassNotFoundException

ClassNotFoundException的产生原因:就是找不到指定的class。 ClassNotFoundException发生在加载阶段

常见的场景就是:

  1 调用class的forName方法时,找不到指定的类

  2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类

  3 ClassLoader 中的 loadClass() 方法时,找不到指定的类

NoClassDefFoundError

NoClassDefFoundError发生在初始化阶段

常见的场景就是:

    1 类依赖的class或者jar不存在

  2 类文件存在,但是存在不同的域中

  3 大小写问题,javac编译的时候是无视大小的,很有可能你编译出来的class文件就与想要的不一样!这个没有做验证。

 

posted @ 2017-05-16 16:10  鹊南  阅读(1183)  评论(0编辑  收藏  举报