在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError
Posted
技术标签:
【中文标题】在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError【英文标题】:java.lang.IncompatibleClassChangeError in Apache POI while running in Oracle Agile 9.3.0.2 for Linux 【发布时间】:2011-05-19 06:58:46 【问题描述】:我正在 Oracle Agile 9.3.0.2 中构建 Java Px。
My Px 涉及与两种格式(HSSF 和 XSSF)的 Excel 文件的交互。
我正在使用 Apache POI 库进行 excel 文件处理。
但我得到 "java.lang.IncompatibleClassChangeError" 为这一行:
工作簿工作簿 = WorkbookFactory.create(ip);
其中ip是excel文件的输入流。
当我尝试访问任何 HSSF 电子表格文件时。 (.xls)
Px 适用于 XSSF 电子表格文件。 (.xlsx)
请帮忙!!!!
【问题讨论】:
你看过这个question吗? 【参考方案1】:很有可能您的类路径中有两个不同的 Apache POI 副本。您需要确保所有 POI jar(普通、暂存器、ooxml 等)都来自同一版本。请参阅POI FAQ,了解如何检查生产中实际使用的 jar 文件。
【讨论】:
我已经检查了所有可能性,但没有结果。 您尝试了常见问题解答建议的代码吗?你会惊讶于有多少人解决了这个问题——他们没有意识到的罐子通常是罪魁祸首..【参考方案2】:您能否检查应用程序服务器本身是否捆绑了任何poi-*.jar
文件?如果有的话,它可能会导致类似的问题。也许在压缩文件中使用 TotalCommander 搜索 Workbook.class
或 WorkbookFactory.class
以确保在任何其他 jar 中找不到这些类..
【讨论】:
以上是关于在适用于 Linux 的 Oracle Agile 9.3.0.2 中运行时 Apache POI 中的 java.lang.IncompatibleClassChangeError的主要内容,如果未能解决你的问题,请参考以下文章