簡體   English   中英

將 Apache POi 與 OOXML 一起使用時出現異常 java.lang.NoSuchFieldError: Factory

[英]Exception when using Apache POi with OOXML java.lang.NoSuchFieldError: Factory

我最近升級到 Apache PO 5.2.3(使用 JDK 1.8),創建新工作簿時出現以下異常:

Exception in thread "main" java.lang.NoSuchFieldError: Factory
    at org.apache.poi.xssf.model.ThemesTable.readFrom(ThemesTable.java:119)
    at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:87)
    at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61)
    at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661)
    at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:260)
    at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.createWorkbook(XSSFWorkbookFactory.java:118)
    at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.create(XSSFWorkbookFactory.java:98)
    at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.create(XSSFWorkbookFactory.java:36)
    at org.apache.poi.ss.usermodel.WorkbookFactory.lambda$create$2(WorkbookFactory.java:224)
    at org.apache.poi.ss.usermodel.WorkbookFactory.wp(WorkbookFactory.java:329)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:224)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:185)

我有以下依賴關系,並查看這個 StackOverflow 問題: Exception in thread "main" java.lang.NoSuchFieldError: Factory ,我認為我有正確的依賴關系。 我的依賴項是:

在此處輸入圖像描述

我使用的測試代碼非常簡單:

  File file = new File("L://WRK/Java/designchecker/common/configfiles/Styleset.xlsx");
  try {
     Workbook workbook = WorkbookFactory.create(new FileInputStream(file));
  } catch (Exception ex) {
     ex.printStackTrace();
  }

我確定我的某些版本不正確,但我不知道是哪個。 有人可以指出我的庫版本不匹配在哪里嗎?

作為PJ。 范寧寫道,我需要刪除這兩個庫:

  • ooxml 模式 1.4.jar
  • poi-ooxml-schemas-4.1.2.jar

當我這樣做時,異常消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM