无法更新 .jar 中的 manifest.mf:行太长错误

Can't update manifest.mf inside .jar: line too long error

我有一个 .jar 文件,里面只有 MANIFEST/MANIFEST.MF 文件。我想在此文件中扩展类路径。已经用谷歌搜索了如何做到这一点并找到了这个:

  1. 提取MANIFEST/MANIFEST.MF - jar xf myfile.jar MANIFEST/MANIFEST.MF
  2. 编辑清单文件
  3. 在 .jar 中更新它 - jar umf myfile.jar MANIFEST/MANIFEST.MF

问题是我得到这个错误:

java.io.IOException: line too long
        at java.util.jar.Attributes.read(Attributes.java:379)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at sun.tools.jar.Main.update(Main.java:652)
        at sun.tools.jar.Main.run(Main.java:271)
        at sun.tools.jar.Main.main(Main.java:1288)

Google 表示清单的最大行长度为 72 - 可以。尝试不编辑提取的清单文件。当我尝试导入我刚刚提取的同一文件时,我得到了同样的错误。也许有一种工具可以格式化清单文件以使它们 "valid"?

提前致谢。

使用以下步骤避免此问题

(1) 使用单独的行,以避免 java 包名称列表

的行太长

(2)(Space 在每一行的末尾,一个在开头)。在以下各行之前键入前面的 space,例如:Class-Path: ...jar ...jar ...jar

更新命令应该是:

jar umf MANIFEST/MANIFEST.MF myfile.jar