【问题标题】:Java - getManifest() issue: Not first entryJava - getManifest() 问题:不是第一个条目
【发布时间】:2012-04-30 17:37:15
【问题描述】:

我想以编程方式在 java 中生成一个 jar 文件。当输入 jar 文件没有被混淆时,这很有效。当我在上面使用混淆器时,第一个条目不再是清单,所以我无法生成新文件...

这是我的代码:

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/obfuscated_jar.jar"));
JarOutputStream output = new JarOutputStream(new FileOutputStream("generated_jar.jar"), input.getManifest());

input.getManifest() 行返回 null,因为清单不在首位。

我已经对其进行了一些搜索,它看起来是JarInputStream 的一个已知问题。所以这是我的问题:是否有可能解决它?喜欢编写我自己的 getManifest 方法之类的吗?

【问题讨论】:

    标签: java jar manifest manifest.mf


    【解决方案1】:

    终于,我找到了一种方法。

    我将文件 MANIFEST.MF 保存到我的主 jar 中,并使用该代码替换了 input.getManifest()

    Manifest mf = new Manifest();
    mf.read(getClass().getResourceAsStream("/lib/manifest.mf"));
    

    在这种情况下,我从obfuscated_jar.jar 中提取了manifest.mf 并将其粘贴到我的主jar 文件的lib 文件夹中。

    这可能不是最好的方法,但它确实有效!

    我希望这可以帮助某人。

    【讨论】:

      猜你喜欢
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多