2012-06-04 191 views
11

我正在嘗試使用Java 6的jarsigner簽署一個.wgt文件(它是一個jar文件)。但是當我嘗試簽名,在請求輸入密鑰庫的密碼之後,它給我出現以下錯誤。jarsigner error:java.lang.RuntimeException:keystore load:密鑰庫被篡改,或者密碼不正確

jarsigner error: java.lang.RuntimeException: keystore load: Keystore was tampered with, or password was incorrect 

我甚至嘗試用新創建的密鑰存儲,讓我相信我輸入正確的密碼。還有什麼可能會出錯的嗎? 在此先感謝!

回答

-1

您收到的錯誤消息描述了該問題。要麼您輸入的密碼不正確,要麼密鑰庫已損壞。

最可能的答案是您已將密鑰庫密碼與別名/ keypass的密碼混淆。

+2

我想你並沒有窮盡所有可能的原因。我也一樣,我已經加倍檢查了一切。 – rwst

+2

我有同樣的問題。我可以使用一個簡單的密碼生成一個新的密鑰存儲庫,讓它們都可以接受,然後*仍然*得到這個錯誤。 –

2

檢查您的密鑰庫別名一次。某些時候密鑰庫別名與keytool別名不同,那麼它會給出相同的錯誤...因此,請檢查一次它的別名

3

如果您要引用密碼,請嘗試刪除引號。我在Windows 7的1.7.0_25-b17 JDK中使用jarsigner時遇到了此錯誤。我通常在Solaris和Linux上使用早期版本的jarsigner,並且始終使用單引號引用密碼,因爲它通常包含由shell解釋的字符。

我還沒有驗證,但我猜在* nix的shell解釋器修改引號之前將參數傳遞給jarsigner,但Windows命令提示符不。

例如,而不是

jarsigner -keystore /my/cert/file -storepass 'password' /my/jar/file my_alias

嘗試

jarsigner -keystore /my/cert/file -storepass password /my/jar/file my_alias

1

我有完全相反的問題@Peter我在密碼有特殊字符和我簽約的腳本不停地給這個錯誤,直到我用雙引號包裝密碼"

我認爲這是因爲我正在運行一個批處理文件來簽署我的應用程序,而不是直接將它輸入到命令行中,並且Windows對密碼中的特殊字符感到困惑。

0

我的問題是,我在-storepass-keypass開關(這是一個壞主意)和我的系統Jarsigner沒有它的命令中的密碼。一旦我將它們拉出並允許Jarsigner提示我輸入正確的密碼。

相關問題