ZT:https://blog.csdn.net/wn084/article/details/80482187
如果你的問題屬於“引入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...
之后打開項目結構界面:
打開后按照這個步驟操作即可: