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

DOM4J 讀取 XML 檔案找不到路徑:相對路徑與 Classpath 載入

     編輯:程式設計綜合問答

錯誤原因

reader.read("src/book2.xml") 使用相對檔案系統路徑,執行時工作目錄為專案根目錄或 target/classes,導致找不到 src/ 下的檔案。

三種正確載入方式

  1. Classpath 資源(推薦):將 XML 放入 src/main/resources/(Maven)或 src/(Eclipse 預設),編譯後自動複製至 target/classes/。
    InputStream is = getClass().getClassLoader().getResourceAsStream("book2.xml");
    Document doc = reader.read(is);
  2. 絕對檔案路徑:僅適用於固定部署環境。
    Document doc = reader.read(new File("D:/data/book2.xml"));
  3. ServletContext 取得實體路徑(Web 專案)。
    String path = getServletContext().getRealPath("/WEB-INF/xml/book2.xml");
    Document doc = reader.read(path);

專案結構建議

src/
├── main/
│   ├── java/
│   │   └── cn/iast/dom4j/Dom4jDemo.java
│   └── resources/
│       └── book2.xml   <-- 放這裡

除錯技巧

// 列印 classpath 確認資源是否被複製
System.out.println(getClass().getClassLoader().getResource("book2.xml"));

若印出 null,檢查建置工具(Maven/Gradle/Eclipse)是否將 resources 目錄納入輸出。

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