异常Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/poi/ooxml/POIXMLDocumentPart
最新推荐文章于 2024-10-29 11:33:41 发布
最新推荐文章于 2024-10-29 11:33:41 发布 阅读量 1.6w

解决异常Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ooxml/POIXMLDocumentPart

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ooxml/POIXMLDocumentPart
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:108)
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:90)
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:77)
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:73)
	at com.sun.unifyspatialdatabase.utils.WordTest.test(WordTest.java:33)
	at com.sun.unifyspatialdatabase.utils.WordTest.main(WordTest.java:46)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ooxml.POIXMLDocumentPart
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 6 more

当java操作word或excel抛出这样的异常时,一般原型时pom文件少引入依赖

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>

pom文件需要添加以两个依赖即可解决bug

【代码】解决 异常 Exception in thread main java . lan g. NoClassDefFoundError : org / apache / poi / ooxml / POI XMLDocument Pa。 Exception in thread " main " java . lan g. NoClassDefFoundError : org / apache / poi /util/ POI LogFactory Exception in thread " main " java . lan g. NoClassDefFoundError : org / apache / poi /util/ POI LogFactory at org . apache ... pio4.1.2版本升级后类的位置变了,并且还有其他的改动而对应的 org . apache . poi .xwpf.converter.core-1.0.6.jar到1.0.6版本后没有在升级新版本,所以要自己重新一个jar包里面的一个类。原因是大概是因为 poi 从3.1.X低版本版本升级到pio4.1.2高版本的后与 org . apache . poi .xwpf.converter.core-1.0.6.jar不兼容问题,导致这个情况的主要原因是因为。 二、原因解析 经过对比发现4.2.1版本比旧版本多了 ooxml 包,导致找不到 POI XMLDocument Part,所以这里的解决方案有两个: 1.可以在项目中把旧版本的jar包源码修改后上传到maven仓库。 2.依旧使用4.2.1版本并把配套的jar包依赖一同升级。 本篇文章介绍第二种解决方法。 三、依赖包 依赖包中主要是xdocreport的版本一定要升级到2.0.2。 <dependency> 3.add jars选择所需的包 使用 apache poi 来实现excel读写时,需要导入jar包,以上是导入的一般过程,但是按这个步骤导入jar包后出现 Exception in thread " main " java . lan g. NoClassDefFoundError : org / apache / poi /xssf/usermodel/XSSFWorkboo的报错,检查了导入的包没有问题,后来这个Eclipse——添加库(Add