You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取Excel遇NoClassDefFoundError:找不到UnsynchronizedByteArrayOutputStream

解决java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream问题
  • 核心问题:版本不匹配

    1. UnsynchronizedByteArrayOutputStream是commons-io 2.8.0才新增的类,你当前使用的commons-io 2.7版本不包含这个类,而poi 5.2.2依赖的commons-io版本要求是2.11.0及以上。
    2. poi-ooxml-schemas 4.1.2与poi 5.2.2版本冲突,poi 5.x系列不需要单独引入poi-ooxml-schemas,poi-ooxml依赖已经包含了对应版本的schemas组件。
  • 修正后的pom.xml依赖配置

<dependencies>
    <!-- Apache POI 核心及OOXML依赖 -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.2</version>
    </dependency>
    <!-- 升级commons-io到兼容版本 -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
</dependencies>
  • 项目重建与依赖验证
    1. 执行mvn clean install清理旧依赖缓存,重新下载正确版本的依赖包。
    2. 用mvn dependency:tree查看依赖树,确认commons-io版本为2.11.0,且没有被其他依赖降级。如果存在降级情况,在对应依赖中添加exclusions排除低版本commons-io:
<dependency>
    <!-- 示例:排除其他依赖引入的低版本commons-io -->
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>xxx</version>
    <exclusions>
        <exclusion>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </exclusion>
    </exclusions>
</dependency>

内容的提问来源于stack exchange,提问作者monisha wali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:17:00