1. 程式人生 > >解決IDEA和Eclipse中 引入了對應的jar包卻出現ClassNotFoundException

解決IDEA和Eclipse中 引入了對應的jar包卻出現ClassNotFoundException

        如果你的問題屬於“引入jar包後編譯能通過但在web中呼叫就報ClassNotFoundException”,請認真看下面的解決方案。不屬於請自覺繞道。^_^

        出現這種問題就說明你引入的jar包在WEB-INF\lib下不存在。那為什麼能通過編譯呢?拜託,編譯的時候又不從WEB-INF\lib目錄下尋找類,是從classpath下尋找的,也就是說你引入的jar包只是存在於classpath下。既然分析清楚問題出在哪裡,下面就分別演示在IDEA和Eclipse下怎麼把jar包正確的引入WEB-INF\lib裡面。

在Eclipse下:

    在Eclipse下,很多人會這樣引入jar包:

    先在專案根目錄下建立一個資料夾,將jar包放入:

    

再選中所有jar包,單擊右鍵,點選Add to Build Path

    

    這時候專案就會出現這個Libraries:

    

    這樣就引入了Junit的包,可以使用Junit進行單元測試,因為簡單的Junit測試並不涉及web環境,所以這樣並不會報錯。

    若你引入的jar包中會在web環境中使用,上述引入方法就行不通了。因為需要從WEB-INF\lib中尋找jar包,而不是classpath下,所以需要將jar包放在WEB-INF\lib下。專案中出現Web App Libraries代表引入成功。如果沒有出現,需要右鍵jar包,選擇Add to Build Path,否則無法通過編譯。

在IDEA下:

  • 如果建立的web專案中WEB-INF下存在lib目錄,將jar包放入其中後右鍵,選擇Add as Library...即可
  • 如果沒有,可以自行建立後執行上述步驟
  • 如果不想建立,請看如下步驟:
        

        建立一個資料夾將jar包放入,後右鍵選擇Add as Library...

之後開啟專案結構介面:

        

        開啟後按照這個步驟操作即可: