2009-01-07 49 views
8

當我使用這個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

回答

17

冒號後添加一個空格:

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

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

0

是的,這是事實。

人們在爲jar寫清單文件時犯的一個常見錯誤是他們不會在冒號後面放置空格。根據你在這裏寫的內容,我不知道,如果不是這樣,但試試看吧。

例子:

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

此外,清單文件必須保存爲UTF-8。你不一定要把它寫在MS記事本上並保存爲UTF-8編碼。這篇文章有一些很好的細節:

Invalid Header Field Name when adding manifest to JAR using Eclipse

記事本添加一些字節到前廣播數據的字節序。這將打破jar命令。一個體面的解決方案是不使用記事本和下載Notepad ++。在Notepad ++中,您從頂部欄中選擇'編碼',然後選擇'沒有BOM的UTF-8'。保存您的清單文件應用這個設置應該解決問題。如果沒有其他人。