java.util.zip.ZipException: invalid stored block lengths报错解决

报错信息:
场景:
    本例是基于spring的web项目中集成datahub组件抛出的异常.
解析:
    从异常信息看,与httpclient相关.
解决:
    使用高版本httpclient-4.5.5.jar,httpcore-4.4.9.jar两个jar包替换对应低版本jar包.
以上,感谢.

### 解决 Java 中 `invalid compression method` 异常的方法 #### 了解异常原因 `java.util.zip.ZipException: invalid compression method` 表明尝试处理的 ZIP 文件包含了无效或不受支持的压缩方法。这可能是由于文件损坏、格式不兼容或是使用了非常见的压缩算法造成的[^1]。 #### 验证ZIP文件完整性 确保所操作的 ZIP 文件未被破坏。可以通过其他工具(如WinRAR 或7-Zip)打开该文件来测试其有效性。如果这些工具也无法正常解析,则很可能是因为文件本身存在问题,需重新获取一份完整的副本[^3]。 #### 使用可靠的库函数 对于标准的 ZIP 压缩/解压需求,建议采用官方推荐的方式来进行: ```java import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.zip.*; public class ZipUtil { public static void unzip(String zipFilePath, String destDir) throws IOException { File dir = new File(destDir); if (!dir.exists()) dir.mkdirs(); try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFilePath))) { ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { Path filePath = Paths.get(destDir, entry.getName()); if (!entry.isDirectory()) { Files.copy(zis, filePath); // 复制流到目标位置 } else { Files.createDirectories(filePath); // 创建目录结构 } zis.closeEntry(); // 关闭当前条目 } } } } ``` 此代码片段展示了如何安全地遍历并解压 ZIP 归档中的每一个成员项至指定的目标路径下。注意这里并没有显式设置任何特殊的压缩参数,默认情况下会遵循常见的 DEFLATE 方法。 #### 更新依赖环境 确认使用的 JDK 版本是最新的稳定版,并且所有相关的第三方类库也处于最新状态。有时旧版本可能存在某些 bug 导致对特定类型的 ZIP 文件支持不佳。此外,针对 Tomcat 这样的应用服务器场景,还需保证 Web 应用内的 JAR 包均无损可用,防止因签名验证等问题间接触发此类异常[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值