日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NoClassDefFoundError和ClassNotFoundException之间有什么区别?是由什么导致的?

發布時間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NoClassDefFoundError和ClassNotFoundException之间有什么区别?是由什么导致的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題: NoClassDefFoundError和ClassNotFoundException之間有什么區別?是由什么導致的?

NoClassDefFoundError和ClassNotFoundException之前的區別是什么?

是什么導致它們被拋出?這些問題我們要怎么樣解決?

當我在為了引入新的jar包而修改現有代碼的時候,我經常遇到這些異常。在webstart發布的java應用程序的客戶端和服務端,我都遇到過這些異常。

我所遇到的問題可能的原因:

  • packages not included in build.xml for the client side of code
  • runtime classpath missing for the new jars we are using
  • version conflicts with previous jar

如今,當我遇到這些問題時,我會采取trail-and-error 的方法來讓程序正常進行。但是我需要更加清楚的認知和理解。

回答

來自http://www.javaroots.com/2013/02/classnotfoundexception-vs.html:

ClassNotFoundException:當類加載器在class path下面找不到需要的類時發生。所以,基本上你應該檢查你的class path并在class path下面添加類。

NoClassDefFoundError:這更難調試和查找原因。在編譯時需要的類是存在的,但是在運行時類被更改或者刪除,或者類的靜態初始化出現異常,這個異常就會被拋出了。這意味著類加載的時候,該類是存在于classpath中,但是這個類其中所需要的一個類要么被刪除了,要么編譯器加載失敗。所以你應該去看這個類的所依賴的類。

例子:

public class Test1 { }public class Test {public static void main(String[] args){Test1 = new Test1(); }}

在編譯完這兩個類以后,刪除test1運行test就會出現異常

Exception in thread "main" java.lang.NoClassDefFoundError: Testat Test1.main(Test1.java:5) Caused by: java.lang.ClassNotFoundException: Testat java.net.URLClassLoader$1.run(Unknown Source)at java.net.URLClassLoader$1.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 1 more

文章翻譯自Stack Overflow:https://stackoverflow.com/questions/1457863/what-causes-and-what-are-the-differences-between-noclassdeffounderror-and-classn

總結

以上是生活随笔為你收集整理的NoClassDefFoundError和ClassNotFoundException之间有什么区别?是由什么导致的?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。