当我使用这个命令行时: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++。在 Notepad++ 中,您从顶部栏中选择“编码”,然后选择“UTF-8 Without BOM”。应用此设置保存清单文件应该可以解决问题。如果没有其他人的话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top