简体   繁体   English

将 Apache POi 与 OOXML 一起使用时出现异常 java.lang.NoSuchFieldError: Factory

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

I upgraded to Apache PO 5.2.3 recently (using JDK 1.8) and I have the following exception when creating a new Workbook:我最近升级到 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)

I have the following dependencies, and looking at this StackOverflow question: Exception in thread "main" java.lang.NoSuchFieldError: Factory , I thought I had the correct dependencies.我有以下依赖关系,并查看这个 StackOverflow 问题: Exception in thread "main" java.lang.NoSuchFieldError: Factory ,我认为我有正确的依赖关系。 My dependencies are:我的依赖项是:

在此处输入图像描述

The test code I am using is very simple:我使用的测试代码非常简单:

  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();
  }

I am sure that some of my version are incorrect, but I don't know which.我确定我的某些版本不正确,但我不知道是哪个。 Can somebody point to me where is my library version mismatch?有人可以指出我的库版本不匹配在哪里吗?

As PJ.作为PJ。 Fanning wrote, I need to remove these two libraries:范宁写道,我需要删除这两个库:

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

When I do this, the exception disappear.当我这样做时,异常消失了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 线程“main”中的异常 java.lang.NoSuchFieldError:工厂问题 - Exception in thread "main" java.lang.NoSuchFieldError: Factory question 线程“main”中的异常 java.lang.NoSuchFieldError: Factory - Exception in thread "main" java.lang.NoSuchFieldError: Factory java.lang.NoSuchFieldError: DEFAULT - java.lang.NoSuchFieldError: DEFAULT 获取java.lang.NoClassDefFoundError:升级到POI 4.0.0后无法初始化类org.apache.poi.ooxml.util.DocumentHelper - Getting java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.ooxml.util.DocumentHelper after upgrading to POI 4.0.0 在ooxml-schemas-1.4.jar和poishadow-all.jar中使用Apache poi重复性错误时 - When using Apache poi Duplicacy error in ooxml-schemas-1.4.jar and and poishadow-all.jar setcellformula上的Apache POI NoSuchFieldError - Apache POI NoSuchFieldError on setcellformula 如何使用 Apache POI 从 OOXML 中提取字体系列? - How to extract font family from OOXML using Apache POI? java中如何解决java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK - how to solve java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK in java 使用Apache POI将文档文件转换为txt时获取java.lang.IndexOutOfBoundsException - Getting java.lang.IndexOutOfBoundsException when converting doc file to txt using apache POI 使用 Apache POI 时出现 java.lang.NullPointerException - I am getting a java.lang.NullPointerException when using Apache POI
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM