概观
所以我一直在尝试使用Apache POI解析Excel .xlsx文件,然后使用Apache PDFBox输出PDF文件。 PDFBox部分在我的Intellij环境中运行良好,但与POI部分不同......
问题
当我运行程序时,我得到了
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
要么
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
在线
XSSFWorkbook workbook = new XSSFWorkbook(new File("MY_FILE.xlsx"));
即使所有JAR都在外部库中!
我试过的
现在虽然这是一个明显的依赖性问题,我已经尝试了几乎所有maven依赖关系的组合,如其他类似的SO问题所建议的,以及检查所有官方的POI Component Information和FAQ。虽然我似乎正在做所有事情,但似乎随机找不到上述两个类中的一个。下面是我的环境的一些图片,可能有助于调试依赖性问题!
Intellij项目外部图书馆:
Intellij项目结构模块:
Intellij项目结构库:
编辑1
不幸的是,我已经尝试从'org.apache.poi:ooxml-schemas:1.3'maven依赖中移除'xmlbeans-2.3.0.jar',只留下其他jar并将整个依赖项删除运气。这也不是Intellij maven项目,所以我的项目目录中没有pom.xml。我的项目使用Intellij的内置依赖管理,它允许我在给定资源位置的情况下从maven添加依赖项。
编辑2
即使从the Apache POI site下载二进制文件然后将所有JAR直接添加到我的环境中(根本没有maven),仍然存在与上述相同的问题。见下文...
Intellij项目外部图书馆:
堆栈痕迹:
编辑3
它在日蚀中工作!如果有人有兴趣研究一个奇怪的问题,我仍然不会改变我想在Intellij环境中解决这个问题的事实。