Вопрос по encryption, java – java.io.IOException: неверный формат хранилища ключей

29

Кто-нибудь знает как это решить? Я перепробовал много вещей, но ни одна из них не сработала.

И когда я нажимаю больше деталей, я получаю это:

at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
atsun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.deploy.security.RootCertStore$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.RootCertStore.loadCertStore(Unknown Source)
at com.sun.deploy.security.RootCertStore.load(Unknown Source)
at com.sun.deploy.security.RootCertStore.load(Unknown Source)
at com.sun.deploy.security.ImmutableCertStore.load(Unknown Source)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source)
at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
И, пожалуйста, напишите, что вы уже пробовали? akarnokd
@erickson: Да. Теперь я тоже это вижу. Но без ответа ОП мы не можем продолжать дальше, я боюсь. akarnokd
Похоже, что Томи не написал никакого кода, связанного с KeyStore; этот стек - просто апплет, начинающий. Похоже, что загрузчик классов не может подготовиться к проверке подписей апплета. erickson
Что именно ты пытаешься сделать? Размещение некоторого примера кода было бы полезно. Jonik

Ваш Ответ

7   ответов
-1

очистить проект затем перестройте свой проект это сработало для меня.

3

и вам придется его восстановить или восстановить.

Error: User Rate Limit Exceeded
2

мне пришлось установить Oracle JDK, чтобы он заработал.

Вы можете следить за этимруководство по сайтам Google сделать это.

20

вы можете установить filtering = false, чтобы решить проблему.

<build>
    ...
    <resources>
        <resource>
            ...
            <!-- set filtering=false to fix -->
            <filtering>false</filtering>
            ...
        </resource>
    </resources>
</build>
4

что файл хранилища ключей, который вы хотите использовать, имеет другой или неподдерживаемый формат относительно вашей версии Java. Не могли бы вы опубликовать больше информации о вашей задаче?

В общем, для решения этой проблемы вам может потребоваться воссоздать весь склад ключей (например, с использованием какой-либо другой версии JDK). При экспорте-импорте ключи между старым и новым - если вам удастся открыть старый где-то еще.

Если это просто неподдерживаемая версия, попробуйтеBouncyCastle провайдер крипто, например(although I'm not sure If it adds support to Java for more keystore types?).

Edit: Я посмотрел на спецификацию BC.

67

Вы используете Maven? Если вы копируете файл хранилища ключей с помощью «filter = true», вы можете повредить файл.

Пожалуйста, проверьте размер файла.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededmaven-cargo-pluginError: User Rate Limit Exceeded<files><file>...</file></files>Error: User Rate Limit Exceeded<configfiles><configfile>, согласноthe maven:cargo documentation
13

Oracle & APOS; sисправил это для меня.

До установки последней версии JDK, когда я выполнил следующую команду в Terminal.app:

keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v

Это привело к:

keytool error: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
    at java.security.KeyStore.load(KeyStore.java:1445)
    at sun.security.tools.keytool.Main.doCommands(Main.java:792)
    at sun.security.tools.keytool.Main.run(Main.java:340)
    at sun.security.tools.keytool.Main.main(Main.java:333)

Но после установки последней версии Oracle JDK и перезапуска Терминала выполните следующую команду:

keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v

Результаты в:

Enter keystore password:  

Что указывает на то, что keytool на пути может получить доступ к хранилищу ключей.

Error: User Rate Limit Exceeded

Похожие вопросы