首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MyEclipse 中 JAR 包不顯示在 Referenced Libraries 解決方案

     編輯:程式設計綜合問答

現象說明

將 JAR 包放入 Web 專案 `WebRoot/WEB-INF/lib` 目錄,並嘗試右鍵 `Build Path` → `Add to Build Path`,但 JAR 並未出現在 `Referenced Libraries`,而是直接顯示在專案根目錄下,導致編譯找不到類。

根本原因

Web 專案的標準類別路徑機制不同於 Java 專案。

  • **Java 專案**:手動加入 Build Path 的 JAR 會顯示在 `Referenced Libraries`。
  • **Web 專案 (Dynamic Web Project)**:遵循 Servlet 規範,`WEB-INF/lib` 目錄下的 JAR 由容器(Tomcat 等)自動載入,屬於 `Web App Libraries`,不需要也不應該手動加入 Build Path。

正確操作流程

  1. 直接將 JAR 複製/拖拽到 `WebRoot/WEB-INF/lib` 目錄。
  2. 專案資源管理器刷新 (F5),JAR 會自動出現在 **`Web App Libraries`** 節點下(圖示為幾本書堆疊)。
  3. 此節點功能等同於 `Referenced Libraries`,編譯、除錯、部署均正常工作。

為什麼手動 Add to Build Path 會導致異常顯示?

手動加入會破壞 Web 專案的標準結構,Eclipse 將其視為外部相依性,顯示在專案根層級,且部署時可能不會自動複製到 `WEB-INF/lib`,導致運行時 `ClassNotFoundException`。

常見問題排查

現象原因解決
JAR 在 lib 目錄但不在 Web App Libraries專案未刷新或未啟用 Web 專案 Facet右鍵專案 → Properties → Project Facets 確認 Dynamic Web Module 已勾選
編譯通過但運行報 ClassNotFoundExceptionJAR 未隨 WAR 部署檢查 Deployment Assembly:`WEB-INF/lib` 應映射至 `WebRoot/WEB-INF/lib`
Maven 專案無 Web App LibrariesMaven 管理相依性,顯示在 Maven Dependencies此為正常現象,無需干預

總結

Web 專案中,`WEB-INF/lib` 下的 JAR 自動歸屬 `Web App Libraries`,無需手動加入 Build Path。 看到 `Web App Libraries` 節點即表示配置正確。若堅持想看到 `Referenced Libraries`,說明專案類型可能選錯(應選 Dynamic Web Project 而非 Java Project)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved