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

Eclipse 使用 Apache POI 產生 Word 文件:缺少 Jacob 與路徑錯誤

     編輯:程式設計疑難解答

錯誤現象

Eclipse 專案引入 POI 依賴,運行報錯 NoClassDefFoundError: com.jacob.com.ComThread 或檔案路徑 D;/ 錯誤。

核心問題與解決

  1. 缺少 Jacob DLL:POI 操作 Word (.doc) 需 Jacob (Java-COM Bridge) 將 .doc 轉 .docx 或直接操作 COM。
    解決:下載 jacob.jar 加入 Classpath,並將 jacob-1.20-x64.dll (或 x86) 放入 java.library.path (如 System32、專案根目錄或 -Djava.library.path=.)。
    注意:.docx 格式 (XWPFDocument) 純 Java 實作,**不需要 Jacob**。
  2. 路徑字串錯誤:
    String htmlfile = "D;/"; // 錯誤:分號非路徑分隔符
    // 正確
    String htmlfile = "D:/"; 
    // 或 Windows 雙反斜線
    String htmlfile = "D:\\\\";
  3. POI 版本相容:POI 5.x 需 Java 8+,確認 Eclipse 編譯器合規級別。

完整範例:建立 .docx

// 僅需 poi-ooxml 依賴
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText("Hello POI Word!");
run.setBold(true);
run.setFontSize(16);

try (FileOutputStream out = new FileOutputStream("D:/output.docx")) {
    doc.write(out);
}
doc.close();

最佳實踐

  • 新專案直接使用 .docx (OOXML) 格式,避免 Jacob/COM 相容性地獄。
  • Maven/Gradle 依賴管理:
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
  • 複雜排版建議使用範本檔案 (XWPFDocument template = new XWPFDocument(new FileInputStream("template.docx"))) 填充資料。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved