无效的头文件,而使用的jar归档

问题描述:

当我使用这个CMD行: 罐子CMF arshad.mf ars.jar的* .class 我得到这个错误:无效的头文件,而使用的jar归档

invalid header field name:Manifest-version 

这是我的清单文件:

Manifest-Version: 1.0 
Main-Class:t 

我用UTF-8编码做了记事本清单文件 - 是否有任何清单问题?

+0

嘿,伙计们,记住要upvote这个问题和答案,如果这对你有帮助!如果问题有5K +个观点,问题应该有多于1票! – John 2013-08-24 02:24:07

冒号后添加一个空格:

Manifest-Version: 1.0 
Main-Class: t 
+0

哇。这是一个完美的解决方案。thx很多:) – arshad 2009-01-08 16:18:17

是的,这是事实。

人们在为jar写清单文件时犯的一个常见错误是他们不会在冒号后面放置空格。根据你在这里写的内容,我不知道,如果不是这样,但试试看吧。

例子:

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

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

Invalid Header Field Name when adding manifest to JAR using Eclipse

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