天天看點

java.lang.ClassNotFoundException與java.lang.NoClassDefFoundError的差別(轉)

ClassNotFoundException這個錯誤,比較常見也好了解。

  原因:就是找不到指定的class。

  常見的場景就是:

  1 調用class的forName方法時,找不到指定的類

  2 ClassLoader 中的 findSystemClass() 方法時,找不到指定的類

  3 ClassLoader 中的 loadClass() 方法時,找不到指定的類

java.lang.Class.java:

這個就比較奇葩了,查找其他的資料是說,通過了編譯,但是使用的時候,比如new的時候會出錯。

  通過查找資料,搜集到如下的場景:

  1 類依賴的class或者jar不存在

  2 類檔案存在,但是存在不同的域中

  3 大小寫問題,javac編譯的時候是無視大小的,很有可能你編譯出來的class檔案就與想要的不一樣!這個沒有做驗證。

java.lang.ClassNotFoundException與java.lang.NoClassDefFoundError的差別(轉)

http://www.cnblogs.com/xing901022/p/4185514.html