当我使用这个 cmd 行时: jar cmf arshad.mf ars.jar *.class 我得到这个错误:
invalid header field name:Manifest-version
这是我的清单文件:
Manifest-Version: 1.0
Main-Class:t
我用 UTF-8 编码的记事本制作了清单文件 - 清单有什么问题吗?
在冒号后添加一个空格:
Manifest-Version: 1.0
Main-Class: t
是的,它是真实的。
人们在为 jar 编写清单文件时常犯的一个错误是,他们没有在冒号后放置空格。我不知道,根据您在这里写的内容,是否是这样,但请尝试一下。
例子:
Main-Class:someClass //wrong
Main-Class: someClass //correct
此外,您的清单文件必须保存为 UTF-8。在 MS 记事本上写入并保存为 UTF-8 编码不一定安全。这篇文章有一些很好的细节:
使用 Eclipse 将清单添加到 JAR 时标头字段名称无效
记事本在前面添加了一些字节以广播数据的字节序。这将破坏 jar 命令。一个不错的解决方案是不使用记事本并下载记事本++。在 Notepad++ 中,您从顶部栏中选择“编码”,然后选择“不带 BOM 的 UTF-8”。应用此设置保存清单文件应该可以解决问题。如果没有其他人。