加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java.util.zip.ZipException:无效的CEN头(不良签名)

发布时间:2020-12-14 05:08:10 所属栏目:Java 来源:网络整理
导读:在这样做(相对简单)的代码片段中我收到这个错误: ZipFile zf = new ZipFile(fn); Enumeration? extends ZipEntry eze = zf.entries(); while (eze.hasMoreElements()) { ZipEntry ze = eze.nextElement(); System.out.println(ze.getName()); } zf.close();
在这样做(相对简单)的代码片段中我收到这个错误:
ZipFile zf = new ZipFile(fn);
    Enumeration<? extends ZipEntry> eze = zf.entries();
    while (eze.hasMoreElements()) {
        ZipEntry ze = eze.nextElement();
        System.out.println(ze.getName());
    }
    zf.close();

其实.有趣的是,我得到它在java-sun-6u32和java-1.6.0-openjdk-amd64,但是java-sun-7u4成功.解压缩本身好像处理好了我猜想这意味着这些zip文件可能是由java 7了解的一些较新版本的zip创建的,但是以前的版本没有.但是,任何见解将不胜感激.此外,由于在生产中,我并没有真正选择使用java 7,任何使较早版本的java都能理解这个新版本的zip(如果实际上是问题是这样的话).

谢谢!

解决方法

7z l -slt输出在您的评论中提供非常有用:

Type = zip 64-bit

给出一个提示,它是ZIP64(ZIP规范版本4.5).然而,虽然Java7支持它,但是此支持不会被转载到Java6,您将不得不诉诸于Apache Compress等外部库.

附:为了参考,文件test.zip将输出类似的东西

test.zip: Zip archive data,at least v4.5 to extract

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读