18

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

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

我什至尝试使用新创建的密钥库,所以我确定我输入了正确的密码。还有其他可能出错的地方吗?提前致谢!

4

8 回答 8

6

如果您引用密码,请尝试删除引号。我在 Windows 7 上的 JDK 中使用 jarsigner 时遇到了这个错误1.7.0_25-b17。我通常在 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

于 2013-08-24T16:22:49.083 回答
4

我遇到了与@Peter 完全相反的问题,我的密码中有特殊字符,我的签名脚本一直给出这个错误,直到我将密码用双引号括起来"

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

于 2014-09-10T09:55:10.850 回答
2

检查一次您的密钥库别名。有时密钥库别名与 keytool 别名不同,然后它会给出相同的错误...所以检查一下别名

于 2013-04-25T07:30:20.080 回答
0

您收到的错误消息描述了问题。您输入的密码不正确,或者密钥库已损坏。

最可能的答案是您将密钥库密码与别名/密钥密码的密码混淆了。

于 2012-06-04T19:35:48.497 回答
0

我的问题是我使用-storepassand-keypass开关将密码放入命令中(无论如何这都是个坏主意),而在我的系统上,Jarsigner 没有密码。一旦我将它们取出并允许 Jarsigner 提示我输入密码,它就会按预期工作。

于 2016-07-19T16:02:30.823 回答
0

就我而言,Caps Lock 键有问题。

于 2019-10-02T08:29:00.600 回答
0

就我而言,问题在于该文件夹有奇怪的字符。我更改了名称并且它有效。

于 2021-01-28T08:09:09.627 回答
0

只需更改文件名。您只给出了没有扩展名的名称。

于 2021-06-08T11:10:24.197 回答