2013-10-12 48 views
2

我試圖使用命令行jarsigner或ant signjar任務來自我簽名applet。我發現jarsigner和signjar都覆蓋了包含必要的Codebase和Permissions條目的maniftest.mf文件,所以當applet運行時它會因爲缺少條目而失敗。我已經嘗試在簽名後添加必要的條目,但導致小程序無法加載,我認爲這些代碼庫和權限條目也必須簽名。在Mac或Win上使用JDK 1.7.0_40或1.6.0_51的結果相同。Jarsigner覆蓋manifest.mf,創建applet權限catch-22

我敢肯定,這是用戶錯誤,或者互聯網會有問題和投訴。我沒有找到工作解決方案來搜索此問題。你們有沒有遇到過並且解決了這個貌似catch-22?感謝你的幫助!

回答

1

回答我自己的問題,以防萬一有類似問題的人通過Google到達此處。

我一直在使用ant manifest任務來動態創建我的manifest.mf文件。也就是說,沒有名爲「manifest.mf」的物理文件系統文件。這個任務將manifest.mf文件添加到由ant打包的JAR中,但沒問題,但不知何故,這種方式創建的清單與jarsigner工具(包括ant簽名任務)之間存在不愉快的交互。如果我在文件系統上創建了一個物理manifest.mf文件,請讓jar任務在.jar中包含該文件,然後通過signjar進行簽名,一切正常。

我不知道這是否應該被視爲清單任務中的錯誤,或者如果我只是做錯了。我知道用手滾動我自己的manifest.mf文件是正常工作的。

我希望這可以幫助未來的人!

+0

作爲一個附註,'jar ufm filename.jar Manifest.mf'似乎將Manifest.mf的內容合併到jar文件的清單中。這裏的關鍵是「m」論點。不知道如何獲得ant manifest任務來做到這一點。 – Powerlord