2012-06-04 132 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提示我输入正确的密码。

相关问题