不久前,在開發過程當中,將寫好的項目A編譯成jar包,放到其餘的項目上用的時候(直接引用,而不是使用依賴管理工具),出現以下的錯誤:java
錯誤的全稱:java.lang.NoClassDefFoundError,這是一個運行時錯誤,在編譯的時候並不發生。困擾了我好一下子。工具
原來是原來是項目A編譯成的jar包所依賴的jar包不存在。添加就能夠了。spa
NoClassDefFoundError錯誤的發生,是由於Java虛擬機在編譯時能找到合適的類,而在運行時不能找到合適的類致使的錯誤。例如在運行時咱們想調用某個類的方法或者訪問這個類的靜態成員的時候,發現這個類不可用,此時Java虛擬機就會拋出NoClassDefFoundError錯誤。簡單總結就是,NoClassDefFoundError發生在編譯時對應的類可用,而運行時在Java的classpath路徑中,對應的類不可用致使的錯誤。.net
發生錯誤可能的緣由以下:日誌
若是想了解更多關於NoClassDefFoundError的發生機制和解決方法,能夠參考下面這篇blog:blog
http://blog.csdn.net/angel_g/article/details/54235701開發
本篇blog的部份內容也是來自於這篇blog, 特在此聲明。get
end虛擬機