Java 获取jar内容

Java 获取jar内容,java,jar,zip,7zip,powergrep,Java,Jar,Zip,7zip,Powergrep,我正试图打开一些.jar文件并从中获取文件。 我现在得到的是: 我知道.jar=.zip,所以我使用了7zip。它打开我的jar,说头被破坏了,仍然成功地提取了 我使用了标准的OracleJDK实用工具jarTVFMy.jar,得到了以下结果: java.util.zip.ZipException:打开zip文件时出错 位于java.util.zip.ZipFile.open(本机方法) 位于java.util.zip.ZipFile(ZipFile.java:219) 位于java.util

我正试图打开一些.jar文件并从中获取文件。 我现在得到的是:

  • 我知道
    .jar=.zip
    ,所以我使用了7zip。它打开我的jar,说头被破坏了,仍然成功地提取了
  • 我使用了标准的OracleJDK实用工具
    jarTVFMy.jar
    ,得到了以下结果:
    
    java.util.zip.ZipException:打开zip文件时出错
    位于java.util.zip.ZipFile.open(本机方法)
    位于java.util.zip.ZipFile(ZipFile.java:219)
    位于java.util.zip.ZipFile(ZipFile.java:149)
    位于java.util.zip.ZipFile(ZipFile.java:120)
    位于sun.tools.jar.Main.list(Main.java:1115)
    位于sun.tools.jar.Main.run(Main.java:293)
    位于sun.tools.jar.Main.Main(Main.java:1288)
    

  • 我在网上搜索,找到了打开这个罐子的工具

  • jararchieve是从父.ziparchieve中提取的,该父archieve具有有效的CRC,并且解压时没有任何错误

    问题是:

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

    您在tvf之前有连字符(-)小姐,请使用下面的命令

     jar -tvf my.jar
    

    Java只支持DEFLATE和STORE压缩方法。该文件可能使用了其他压缩方法,或者实际上不是ZIP文件,或者已损坏(也称为“损坏”)。@Andreas,我如何知道使用了哪种压缩方法?为什么我从7z和powerGREP获得的内容不同?只是用-。得到的输出与我在问题中列出的完全相同