【问题标题】:How do I get Apache POI and JAXB to work together?如何让 Apache POI 和 JAXB 一起工作?
【发布时间】:2016-10-28 19:25:44
【问题描述】:
java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject

我在运行代码时收到该错误。好的,没关系 - 我只是忘记获取 XMLBeans ......但它已经退役了,我在他们的档案中找不到最新版本。所以我发现 JAXB 可以作为替代方案,我下载了它并尝试将 jar 文件添加到我在 Intellij 中的库中,但在查找 XMLBeans 依赖项时仍然遇到同样的错误。

如何让 Apache POI 使用 JAXB 代替 XMLBeans?为什么 JAXB 有 7 个不同的 jar 文件,而我却找不到它们的作用?我只想处理一些 excel 文件,而不是大打出手:(

【问题讨论】:

    标签: java intellij-idea jaxb apache-poi xmlbeans


    【解决方案1】:

    XMLBeans 是 Apache POI 的依赖项,并且 POI 不会在其位置使用不同的库。 XMLBeans 打包在我检查过的 Apache POI 下载中,因此您应该可以使用它。您只需要在运行应用程序时确保 xmlbeans jar 文件位于 java 类路径中。

    我检查了http://poi.apache.org/download.html#POI-3.14 提供的最新 POI 二进制 tar.gz 文件“poi-bin-3.14.tar.gz”,提取压缩的 tar 存档(我使用 7-Zip),你会发现 xmlbeans-2.6 poi-3.14/ooxml-lib目录下的.0.jar。

    【讨论】:

    • 虽然,我必须回答这个问题,“如何让 Apache POI 和 JAXB 一起工作?”。简单的回答是,如果您真的想这样做,您实际上需要获取 Apache POI 的整个源代码,修改它并将所有对 XMLBeans 类的引用更改为相应的 JAXB 类(如果有可用的类)。您还需要通过编写自己的类来填补空白,其中可能没有可用的类来满足您的 POI 版本的特定需求来编译并满足您的需求。这真的不是一项简单的任务。
    • 我不敢相信那个该死的罐子一直都在那里,我很笨。感谢您的快速回复,我真的很感激。碰巧你知道为什么当我在 Intellij 中链接 Apache POI 文档时它不起作用?
    猜你喜欢
    • 2015-09-23
    • 2017-05-08
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多