gpt4 book ai didi

eclipse - NoClassDefFoundError : org/apache/poi/util/POILogFactory

转载 作者:行者123 更新时间:2023-12-05 04:12:58 32 4
gpt4 key购买 nike

我正在尝试在 Eclipse RCP 项目中使用 Apache POI 库。所以我在项目中添加了 poi、poi-ooxml 和 poi-ooxml-schemas,但仍然出现异常 java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactory
at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:53)

在这一行: XWPFDocument doc = new XWPFDocument();

要将 poi 添加到项目中,有一个 p2-repository 和 p2-maven 插件,其中包含以下 Artifact :

<artifact>
<id>org.apache.poi:poi:3.14</id>
<source>true</source>
<transitive>false</transitive><br/>
<instructions>
<Import-Package></Import-Package>
<Export-Package>*</Export-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
</artifact>

(与 <id>org.apache.poi:poi-ooxml:3.14</id><id>org.apache.poi:poi-ooxml-schemas:3.14</id> 相同).

我试图在代码中直接使用 POILoggerFactory POILogger logger = POILogFactory.getLogger(POIXMLDocumentPart.class);
logger.log(POILogger.INFO, "Test");
它有效!我不知道怎么了。

最佳答案

请。检查 poi.jar 和 poi-ooxml.jar 的版本,如果它们相同或者任何旧的 POI jar 已经在你的类路径中。您可以尝试这段代码来获取编译器读取的 POI jar 版本:

ClassLoader classloader =
org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL resPath = classloader.getResource(
"org/apache/poi/poifs/filesystem/POIFSFileSystem.class");
String path = resPath.getPath();
System.out.println("The actual POI Path is " + path);

这是 POI 的组件列表 - http://poi.apache.org/overview.html#components

据我所知,这些是 POI 的依赖项列表

Poi-3.10-Final.jarPoi-ooxml-3.10-Final.jarPoi-ooxml-schemas-3.10.jarxmlbeans-2.30.jar

希望对你有帮助。

关于eclipse - NoClassDefFoundError : org/apache/poi/util/POILogFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38969978/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com