天天看點

NoClassDefFoundError------莫名其妙的報錯

記錄一個莫名其妙的報錯java.lang.NoClassDefFoundError: Could not initialize class com.demo.jdbc.utils.MyJdbcUtils

在本地對資料庫做junit時,一切正常。但是通過tomcat進行調試就報題目的錯誤。(這一錯誤涉及到JVM的類加載機制,我真的不懂)

多次測試可以斷定,我的JDBCutil類不存在錯誤(這一個錯誤我調試了近4個小時,但是異常被吃了),我使用的反射類也沒錯,是以到底是哪裡錯了?我到現在也沒搞懂!!

因為報錯指出是我的JDBCutil類沒有初始化,我對JDBCUtils類中所有的靜态方法打了斷點進行調試,神奇的事情發生了,程式一切正常了(過于神奇,以至于無fuck可講 )

通過對NoClassDefFoundError錯誤的複現,上面靜态打斷點出奇迹的現象可遇不可求。深究根本原因— 類沒有加載完全

解決方案(可能隻适用于我)

project structure---artifacts-- fix lib    在WEB-INF中加載lib-lib(也就是你所使用的外部lib庫)
           
NoClassDefFoundError------莫名其妙的報錯