Ошибка jarsigner: java.lang.RuntimeException: загрузка кэша: Keystore был изменен или пароль был неверен

Я пытаюсь подписать файл .wgt(виджет, который является файлом jar), используя jarsigner Java 6. Но когда я пытаюсь подписать, он дает мне следующую ошибку после запроса ввести парольную фразу для хранилища ключей.

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

Я даже попробовал с недавно созданным хранилищем ключей, поэтому я уверен, что вводя правильный пароль. Есть ли что-нибудь еще, что могло бы пойти не так? Спасибо заранее!

Ответ 1

Если вы указываете пароль, попробуйте удалить кавычки. Я столкнулся с этой ошибкой при использовании jarsigner в 1.7.0_25-b17 JDK в Windows 7. Обычно я использую более ранние версии jarsigner в Solaris и Linux и всегда указывал пароль с использованием одинарных кавычек, потому что он часто содержит символы, которые интерпретируются оболочкой.

Я не проверял, но я предполагаю, что интерпретатор оболочки на * nix обрезает кавычки перед передачей параметров 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

Проверьте одно имя псевдонима хранилища ключей. Некоторое время имя псевдонима keystore отличается от имени псевдонима keytool, тогда оно дает ту же ошибку... Поэтому проверьте его псевдоним один раз

Ответ 3

У меня была совершенно противоположная проблема с @Peter. У меня были специальные символы в моем пароле, и мое подписание script продолжало давать эту ошибку, пока я не завернул пароль в двойные кавычки "

Я думаю, это связано с тем, что я запускал пакетный файл, чтобы подписать мое приложение, а не вводить его непосредственно в командной строке, а окна путались о специальных символах пароля.

Ответ 4

Моя проблема заключалась в том, что я вводил пароль в команду с помощью переключателей -storepass и -keypass (что плохой идеей), и в моей системе Jarsigner не было ни одного. Как только я вытащил их и позволил Jarsigner запросить у меня пароль, он работал, как ожидалось.

Ответ 5

В моём случае была проблема с ключом Caps Lock.

Ответ 6

Сообщение об ошибке, которое вы получаете, описывает проблему. Либо вы набрали свой пароль неправильно, либо хранилище ключей стало поврежденным.

Наиболее вероятным ответом является то, что вы путали пароль хранилища ключей с паролем для псевдонима/ключа.