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

升级commons-compress至1.26.1后出现包不可见错误的原因咨询

问题解答

核心原因:Commons Compress 从1.25.0版本开始正式启用Java模块系统(JPMS)

  • 你之前用的1.19这类低于1.25.0的版本,属于非模块化JAR包,在Java模块系统环境下会被当作「自动模块」处理。自动模块的特点是会自动导出所有内部包,而且其他模块不需要写requires声明就能直接访问它的内容——这就是旧版本不用修改module-info.java的原因。

  • 从1.25.0版本开始,Commons Compress官方给它加了module-info.java,变成了显式模块。显式模块严格遵守JPMS的规则:只有在你的模块的module-info.java里通过requires org.apache.commons.compress;声明依赖,才能合法访问它导出的org.apache.commons.compress.compressors这类包。你升级到1.26.1后,它已经是显式模块了,所以必须加这条声明才能正常编译。

补充说明

翻Commons Compress的版本更新记录就能看到,1.25.0的发布内容里明确提到了添加JPMS模块支持,模块名称就是org.apache.commons.compress。从这个版本起,它不再是自动模块,必须通过显式声明依赖才能使用。

内容的提问来源于stack exchange,提问作者Francis Salvin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:12:01