java.lang.NoClassDefFoundError錯誤產生的原因及解決方案


java.lang.NoClassDefFoundError錯誤產生的原因:

NoClassDefFoundError錯誤產生的原因是:JVM在編譯的時候能找到調用方法或靜態變量所在的類,但在運行的時候找不到此類而引發的錯誤。

本人曾產生NoClassDefFoundError錯誤的代碼:

應用程序跑的時候,出現了java.lang.NoClassDefFoundError: Could not initialize classUtils.JdbcUtils。第一個想法就是:是不是在調用工具類的地方出現了問題。

找到調用此類的地方發現沒有任何問題。然后就把上圖代碼改成了下圖代碼,運行沒有任何問題。


然后,回頭去看出錯的代碼,在看到自己的注釋瞬間明白自己犯了個低級錯誤。在使用pro.getProperty("driver")或的驅動的時候,需要先讀取db.properties文件里的

資源,然后在加載驅動。正確如下:


NoClassDefFoundError錯誤發生的原因如下幾種:

1.db.properties不在classes文件下
2.檢查日志文件中是否有java.lang.ExceptionInInitializerError這樣的錯誤,NoClassDefFoundError有可能是由於靜態初始化失敗導致的錯誤。
3.像我一樣代碼順序問題。

參考:http://blog.csdn.net/jamesjxin/article/details/46606307


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com