天天看點

Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常

Java Web項目,可以引用其他項目,如:

Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常
Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常

通過在Java Build Path 引用了第三方項目,可以保證編譯時不出錯,因為這個引用的項目已經在Web項目的classPath中,同樣,在Web中寫main方法引用這個第三方項目的類也不會出錯,因為Eclipse會在目前工作空間中找到該項目。

而當釋出到比如Tomcat後,由于隻在classPath中配置了該項目,當要用到被引用的類,JVM想要去Web項目的WEB-INF/lib或WEB-INF/classes目錄加載被引用的類時,卻找不

到,就會發生ClassNotFoundException繼而引發NoClassDefFoundError:

Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常
Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常

那就要把引用的項目打包放到Tomcat,這可以通過Eclipse設定:

Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常
Java Web項目 NoClassDefFoundError 錯誤及 ClassNotFoundException異常

當然,你也可以手動打包項目放到Tomcat對應項目的lib目錄下,隻是很煩。