无法更新 .jar 中的 manifest.mf:行太长错误
Can't update manifest.mf inside .jar: line too long error
我有一个 .jar 文件,里面只有 MANIFEST/MANIFEST.MF 文件。我想在此文件中扩展类路径。已经用谷歌搜索了如何做到这一点并找到了这个:
- 提取MANIFEST/MANIFEST.MF -
jar xf myfile.jar
MANIFEST/MANIFEST.MF
- 编辑清单文件
- 在 .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
我有一个 .jar 文件,里面只有 MANIFEST/MANIFEST.MF 文件。我想在此文件中扩展类路径。已经用谷歌搜索了如何做到这一点并找到了这个:
- 提取MANIFEST/MANIFEST.MF -
jar xf myfile.jar MANIFEST/MANIFEST.MF
- 编辑清单文件
- 在 .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