將 JAR 包放入 Web 專案 `WebRoot/WEB-INF/lib` 目錄,並嘗試右鍵 `Build Path` → `Add to Build Path`,但 JAR 並未出現在 `Referenced Libraries`,而是直接顯示在專案根目錄下,導致編譯找不到類。
Web 專案的標準類別路徑機制不同於 Java 專案。
手動加入會破壞 Web 專案的標準結構,Eclipse 將其視為外部相依性,顯示在專案根層級,且部署時可能不會自動複製到 `WEB-INF/lib`,導致運行時 `ClassNotFoundException`。
| 現象 | 原因 | 解決 |
|---|---|---|
| JAR 在 lib 目錄但不在 Web App Libraries | 專案未刷新或未啟用 Web 專案 Facet | 右鍵專案 → Properties → Project Facets 確認 Dynamic Web Module 已勾選 |
| 編譯通過但運行報 ClassNotFoundException | JAR 未隨 WAR 部署 | 檢查 Deployment Assembly:`WEB-INF/lib` 應映射至 `WebRoot/WEB-INF/lib` |
| Maven 專案無 Web App Libraries | Maven 管理相依性,顯示在 Maven Dependencies | 此為正常現象,無需干預 |
Web 專案中,`WEB-INF/lib` 下的 JAR 自動歸屬 `Web App Libraries`,無需手動加入 Build Path。 看到 `Web App Libraries` 節點即表示配置正確。若堅持想看到 `Referenced Libraries`,說明專案類型可能選錯(應選 Dynamic Web Project 而非 Java Project)。