java.lang.NoClassDefFoundError: org/springframework/core/ResolvableTypeProvider以及java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的區別


java.lang.NoClassDefFoundError: org/springframework/core/ResolvableTypeProvider
原因:缺少jar包,建議采用高版本的spring

 

java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的區別

我們經常被java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError這兩個錯誤迷惑不清,盡管他們都與Java classpath有關,但是他們完全不同。NoClassDefFoundError發生在JVM在動態運行時,根據你提供的類名,在classpath中找到對應的類進行加載,但當它找不到這個類時,就發生了java.lang.NoClassDefFoundError的錯誤,而ClassNotFoundException是在編譯的時候在classpath中找不到對應的類而發生的錯誤。ClassNotFoundException比NoClassDefFoundError容易解決,是因為在編譯時我們就知道錯誤發生,並且完全是由於環境的問題導致。而如果你在J2EE的環境下工作,並且得到NoClassDefFoundError的異常,而且對應的錯誤的類是確實存在的,這說明這個類對於類加載器來說,可能是不可見的。

解決:

  • 當發生由於缺少jar文件,或者jar文件沒有添加到classpath,或者jar的文件名發生變更會導致java.lang.NoClassDefFoundError的錯誤。
  • 當類不在classpath中時,這種情況很難確切的知道,但如果在程序中打印出System.getproperty(“java.classpath”),可以得到程序實際運行的classpath
  • 運行時明確指定你認為程序能正常運行的 -classpath 參數,如果增加之后程序能正常運行,說明原來程序的classpath被其他人覆蓋了。
  • NoClassDefFoundError也可能由於類的靜態初始化模塊錯誤導致,當你的類執行一些靜態初始化模塊操作,如果初始化模塊拋出異常,哪些依賴這個類的其他類會拋出NoClassDefFoundError的錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM