【问题标题】:invalid header file while using jar for archiving使用 jar 归档时头文件无效
【发布时间】:2010-09-29 23:28:29
【问题描述】:

当我使用这个 cmd 行时: jar cmf arshad.mf ars.jar *.class 我得到这个错误:

invalid header field name:Manifest-version

这是我的清单文件:

Manifest-Version: 1.0
Main-Class:t

我用记事本制作了 UTF-8 编码的清单文件 - 清单有什么问题吗?

【问题讨论】:

  • 大家好,如果对您有帮助,记得点赞这个问题和答案!如果一个问题的浏览量超过 5K,那么它的投票数应该远远超过 1 个!

标签: java jar


【解决方案1】:

在冒号后加一个空格:

Manifest-Version: 1.0
Main-Class: t

【讨论】:

  • thxxxxxxxxxxxxx a lot 我搜索了很多但没有任何有用的结果!!我写道:“Main-Class : MainFram” 读完您的回答后,我写道:“Main-Class: MainFram”,它起作用了!!!非常感谢@Adam Rosenfield
【解决方案2】:

是的,这是真的。

人们在为 jar 编写清单文件时常犯的一个错误是,他们没有在冒号后放置空格。我不知道,根据您在这里写的内容,是否是这样,但请尝试一下。

例子:

Main-Class:someClass //wrong
Main-Class: someClass //correct

【讨论】:

    【解决方案3】:

    此外,您的清单文件必须保存为 UTF-8。在 MS 记事本上写入并保存为 UTF-8 编码不一定安全。这篇文章有一些很好的细节:

    Invalid Header Field Name when adding manifest to JAR using Eclipse

    记事本在前面添加了一些字节以广播数据的字节序。这将破坏 jar 命令。一个不错的解决方案是不使用记事本并下载记事本++。在 Notepad++ 中,您从顶部栏中选择“编码”,然后选择“不带 BOM 的 UTF-8”。应用此设置保存清单文件应该可以解决问题。如果没有其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      相关资源
      最近更新 更多