异常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