【发布时间】:2017-09-01 20:41:36
【问题描述】:
我正在尝试打开一些 .jar 档案并从中获取文件。 我现在得到了什么:
- 据我所知
.jar==.zip,所以我使用了 7zip。它打开我的 jar 并显示 headers 已损坏,但仍成功提取。 我使用标准的 Oracle jdk 实用程序
jar tvf my.jar得到了这个:java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:219) at java.util.zip.ZipFile.<init>(ZipFile.java:149) at java.util.zip.ZipFile.<init>(ZipFile.java:120) at sun.tools.jar.Main.list(Main.java:1115) at sun.tools.jar.Main.run(Main.java:293) at sun.tools.jar.Main.main(Main.java:1288)我在网上搜索并找到了打开此 jar 的 PowerGREP5 工具。
jar 压缩包是从父 .zip 压缩包中提取的,它具有有效的 CRC 并且解压缩时没有任何错误
问题出在这里:
我从 7zip 获得的内容 与 PowerGREP 完全不同。请帮助我了解这是怎么发生的。
【问题讨论】:
-
Java 仅支持 DEFLATE 和 STORE 压缩方法。该文件可能使用了另一种压缩方法,或者实际上不是 ZIP 文件,或者已损坏(也称为“损坏”)。
-
@Andreas,我怎么知道使用了哪种压缩方法?为什么我从 7z 和 powerGREP 获得的内容不同?
标签: java jar zip 7zip powergrep