jarsigner 错误:java.lang.RuntimeException: 密钥库加载: 密钥库被篡改,或者密码不正确

2022-09-02 22:19:57

我正在尝试使用Java 6的jarsigner对.wgt文件(widget是jar文件)进行签名。但是当我尝试签名时,在要求输入密钥库的密码短语后,它给我带来了以下错误。

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

我甚至尝试使用新创建的密钥存储,以便我确定输入了正确的密码。还有什么可能出错的吗?提前致谢!


答案 1

如果您要引用密码,请尝试删除引号。我在Windows 7上的JDK中使用jarsigner时遇到了此错误。我通常在 Solaris 和 Linux 上使用早期版本的 jarsigner,并且总是使用单引号引用密码,因为它通常包含由 shell 解释的字符。1.7.0_25-b17

我还没有验证,但我猜*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


答案 2

我有完全相反的问题,@Peter我的密码中有特殊字符,我的签名脚本不断给出这个错误,直到我用双引号包装密码"

我认为这是因为我正在运行一个批处理文件来对我的应用程序进行签名,而不是直接将其键入命令行,并且Windows对密码中的特殊字符感到困惑。