编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream

最近上线一个 医药ERP,帮客户导入基础数据,比如药品档案,客户给我的是excel文档,之前都是在excel拼接insert语句,单表还好说,处理多表的话还是很麻烦的,而且导入也是个常态化的工作。

于是想先写个简单的小工具,在读取excel的时候报错:

java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream

更具体的信息如下:

Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 25 more

很显然,是缺少了 commons-io 包,于是在 maven pom.xml 文件中进行了引入

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
</dependency>

这样就解决了:java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream 的问题。

网上有解决方案说,还需要引入commons-lang 和 javassist。我这里没需要,如果引入 commons-io 还报错的,可以试试再引入commons-lang 和 javassist。

未经允许不得转载: 技术文章 » 日常工作 » java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream