【问题标题】:Getting jar content获取 jar 内容
【发布时间】:2017-09-01 20:41:36
【问题描述】:

我正在尝试打开一些 .jar 档案并从中获取文件。 我现在得到了什么:

  1. 据我所知.jar==.zip,所以我使用了 7zip。它打开我的 jar 并显示 headers 已损坏,但仍成功提取。
  2. 我使用标准的 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)

  3. 我在网上搜索并找到了打开此 jar 的 PowerGREP5 工具。

jar 压缩包是从父 .zip 压缩包中提取的,它具有有效的 CRC 并且解压缩时没有任何错误

问题出在这里

我从 7zip 获得的内容 与 PowerGREP 完全不同。请帮助我了解这是怎么发生的。

【问题讨论】:

  • Java 仅支持 DEFLATE 和 STORE 压缩方法。该文件可能使用了另一种压缩方法,或者实际上不是 ZIP 文件,或者已损坏(也称为“损坏”)。
  • @Andreas,我怎么知道使用了哪种压缩方法?为什么我从 7z 和 powerGREP 获得的内容不同?

标签: java jar zip 7zip powergrep


【解决方案1】:

你在 tvf 之前错过了连字符(-),使用下面的命令

 jar -tvf my.jar

【讨论】:

  • 刚刚用 - 测试过。得到与我在问题中列出的完全相同的输出
猜你喜欢
  • 2017-01-26
  • 2014-10-05
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2013-06-14
相关资源
最近更新 更多