首页 > 编程语言 >java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream

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

时间:2023-04-25 16:46:18浏览次数:50  
标签:lang java NoClassDefFoundError commons UnsynchronizedByteArrayOutputStream io ap

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


 

 一、问题现象

在导出 Excel 过程中,程序报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream
 at PIOTest.main(PIOTest.java:31)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream
 at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

 

 

二、问题原因

通过报错信息可以看出,这个异常通常出现在你在代码里使用了 org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream 这个类,但是该类所在的依赖包 commons-io 并没有被引入或不存在。

 

 

三、解决方案

解决这个问题,需要将 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>

注意:此处必须使用 2.11.0 及以上版本,不然还是会报 NoClassDefFoundError。

 

Maven 远程仓库地址:https://mvnrepository.com/artifact/commons-io/commons-io

 

 

 

PS

如果没有使用Maven,可以手动下载 commons-io 的 jar 包,并将其添加到项目的 lib 目录或者 classpath 中。

如果已经将 commons-io 的包引入到项目中,仍然出现 ClassNotFoundException 异常,则有可能是因为编译环境和运行环境不一致,需要检查编译和运行的环境是否一致。

 

标签:lang,java,NoClassDefFoundError,commons,UnsynchronizedByteArrayOutputStream,io,ap
From: https://www.cnblogs.com/miracle-luna/p/17353075.html

相关文章

  • javascript import maps 特性现已被全部主流浏览器支持
    值得庆祝Importmaps特性现在可以在全部三个主要浏览器内使用现在主流现代web应用引入和利用javascript是通过Esmodule模块实现。在开发javascript上,比起无模块化功能的旧版浏览器,现代浏览器支持模块化且提供了许多好用的功能引入esmodule使用<scripttype=“impor......
  • golang 通过 os 包进行文件读写
    go中os包主要与操作系统打交道,实际底层还是通过相关的系统调用实现文件的读写操作,今天我们就来聊聊通过os包实现文件的读写操作。我们在使用os包进行相关操作时,主要流程:读操作open->read->close写操作open->read->write->close总体来说,读写操作都......
  • java8 lambda 求list最大值、最小值、平均值、求和、中位数、属性排序(空指针异常,空值
    点击查看代码importorg.junit.Test;importjava.text.SimpleDateFormat;importjava.util.*;importjava.util.stream.Collectors;importstaticjava.util.Comparator.comparingLong;importstaticjava.util.stream.Collectors.*;/***@Author:*@Date:2018/12......
  • java通过url得到文件对象(支持http和https)
    文字标题:java通过url得到文件对象(支持http和https)作者:锅巴1.场景:通过一个url地址来得到一个文件,此方式就是通过一个url将文件下载到本地的临时文件,直接上代码/***远程读取文件**@paramnetUrl*@return*/publicstaticFilegetNet......
  • java面试题--springboot
    一、SpringBoot自动装配原理是什么?@SpringBootApplication@EnableAutoConfigration\@SpringBootConfigration\@ComponentScan@AutoConfigrationPackage\@ImportMETA-INF\spring.factories二、说一下@Configuration中的属性proxyBeanMethods的作用?首先,引入两个概念:Full全......
  • Java中不同对象调用该实例方法返回值是同一个地址空间吗?
    结论不管是基本类型还是引用类型都是新开辟的内存空间即返回的不是同一个地址空间不然操作返回值A变量直接影响到返回值B变量'=='基本比较的是两者的值是否相同而引用类型比较两者的是引用地址是否相同基本类型返回的值相同'=='就为truepublicintm1(){ return-1;......
  • EAS_在ListUIETCX.java中校验是否选中行
    /***对内背书*/publicvoidactionEndorseIn_actionPerformed(ActionEvente)/**/throwsException/**/{checkSelected();ArrayListidList=getSelectedIdValues();ReceivableBillCollec......
  • java学习之七:使用匿名类直接new接口
    ......
  • Java学习之六:“this”和“类名.this”以及“类名.class”的区分和详解
    目录 目录引言:1.Class类介绍:1.1Class类简介:1.2得到类对象的三个方法:1.3Class类的常用方法:2.this关键词:3.类名.this:4.总结 引言:对于以上三个语法结构的区分,需要先理解Class类所有对象的类以及调用了静态方法的类都需要在对象创建之前在JVM虚拟机中加载,加载内容被称为“类......
  • Java学习之四:“this”和“类名.this”以及“类名.class”的区分和详解
    引言:对于以上三个语法结构的区分,需要先理解Class类所有对象的类以及调用了静态方法的类都需要在对象创建之前在JVM虚拟机中加载,加载内容被称为“类对象”,每个类的类对象是唯一且是不可变的。而在对象创建的时候,由于类对象已加载,所以可以添加上类型标签。1.Class类介绍:此类的介......