我正在尝试使用Java 6的jarsigner签署.wgt文件(小部件,这是一个jar文件)。但是当我尝试签名时,它在要求输入密钥库的密码后给出了以下错误。< / p>
jarsigner error: java.lang.RuntimeException: keystore load: Keystore was tampered with, or password was incorrect
我甚至尝试使用新创建的密钥存储区,因此我确信我输入的密码正确无误。还有什么可能出错吗? 提前谢谢!
答案 0 :(得分: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 :(得分:2)
检查一次密钥库别名。有时候keystore别名与keytool别名不同,那么它会给出相同的错误......所以检查别名一次
答案 2 :(得分:1)
我遇到了与@Peter完全相反的问题我的密码中有特殊字符,我的签名脚本一直出现此错误,直到我用双引号"
包裹密码
我认为这是因为我正在运行批处理文件来签署我的应用程序,而不是直接在命令行中输入它,而且Windows对密码中的特殊字符感到困惑。
答案 3 :(得分:0)
我的问题是我将密码放在带有-storepass
和-keypass
开关的命令中(无论如何这都是个坏主意)而且我的系统Jarsigner没有。一旦我把它们拉出来并允许Jarsigner提示我输入密码,它按预期工作。
答案 4 :(得分:0)
在我的情况下,大写锁定键有问题。
答案 5 :(得分:0)
就我而言,问题是文件夹中有奇怪的字符。我更改了名称并且可以正常工作。
答案 6 :(得分:0)
只需更改文件名即可。您只提供了名称而没有扩展名。
答案 7 :(得分:-1)
您收到的错误消息描述了该问题。您输入的密码不正确或密钥库已损坏。
最可能的答案是您将密钥库密码与别名/密钥通道的密码混淆。