Alguien sabe cómo resolver esto? Intenté muchas cosas, pero ninguna funcionó.
Y cuando hago clic en más detalles me sale esto:
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)
Puede dañar el archivo durante la copia/transferencia.
¿Estás usando maven? Si está copiando el archivo del almacén de claves con “filter=true”, puede dañar el archivo.
Por favor, compruebe el tamaño del archivo.
-
¡Excelente! Realmente me ayudó. ¿Podría, por favor, aclarar por qué el parámetro de filtrado corrompe el almacén de claves?
– Dmitri
30 de julio de 2013 a las 14:39
-
en mi caso, el
maven-cargo-plugin
la configuración del contenedor debe usar<files><file>...</file></files>
para archivos binarios, en lugar de<configfiles><configfile>
según el maven:documentación de carga– krevelen
13 de marzo de 2018 a las 15:02
xiezefan
Tal vez maven codificando tu KeyStore, puedes configurar filtering=false para solucionar este problema.
<build>
...
<resources>
<resource>
...
<!-- set filtering=false to fix -->
<filtering>false</filtering>
...
</resource>
</resources>
</build>
-
Estaba teniendo debajo en mi padre pom. Marcar el filtrado como falso resolvió el problema.
src/main/resources true – Sanjay Jain
6 de marzo de 2020 a las 6:45
-
Gracias, esto funcionó para mí. Tuve que hacer una compilación experta nuevamente después del cambio
– primer postcomentarista
15 de julio de 2021 a las 10:39
(Re)instalar el último JDK (p. ej. de oráculo) me lo arregló.
Antes de instalar el último JDK, cuando ejecuté el siguiente comando en Terminal.app:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
Resultó en:
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)
Pero, después de instalar la última versión de Oracle JDK y reiniciar Terminal, ejecute el siguiente comando:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
Resultados en:
Enter keystore password:
Lo que indica que la herramienta de claves en la ruta puede acceder al almacén de claves.
-
Esto funcionó para mí, solo instalé lo último, que Mac ya había ‘actualizado’ como un parche o algo así, pero solo una vez que inicié una nueva ventana de terminal, por lo que la ruta usó la nueva actualización de Java. Particularmente útiles fueron los comandos que replicaban el error y demostraban que el problema se había resuelto (aunque debido a la referencia $(java_home), estos funcionaban en la terminal donde el comando gradle no funcionaba, ¡lo cual era un poco confuso)!
– android.comadreja
25/10/2016 a las 22:42
-
Este comando me ayudó a validar el archivo jks (keytool -list -keystore
) – SudoPlz
28 de abril de 2020 a las 20:21
-
¡Esto funcionó después de instalar el último JDK!
– Pedro
13 de junio de 2022 a las 7:16
Shoaeb
Tuve el mismo problema con diferentes versiones de keytool:
C:\Archivos de programa\Java\jdk1.8.0_51\bin\keytool
pero el mismo archivo de almacén de claves funcionó bien con
“C:\Archivos de programa\Java\jre1.8.0_201\bin\keytool”
Sé que es un hilo antiguo, pero he perdido muchas horas resolviendo esto… 😀
Pasé mucho tiempo en esto y finalmente esto funcionó para mí:
vaya a archivo -> estructura del proyecto -> Ubicación SDK -> Configuración de Gradle -> Cambiar Gradle JDK -> de 1.8 a 11
Simplemente cambie Gradle JDK -> de 1.8 a 11, luego reconstruya el proyecto e intente nuevamente
-
¡Gracias! actualizar Gradle JDK a 11 funcionó para mí
–Harshal Pudale
26 de noviembre de 2022 a las 13:34
Faribá
para mí, ese problema sucedió porque generé un archivo .jks en mi computadora portátil con 1.8.0_251 y lo copié en el servidor que tenía java 1.8.0_45 y cuando usé ese archivo .jks en mi código obtuve java.io.IOException: Invalid Formato de almacén de claves.
para resolver este problema, generé el archivo .jks directamente en el servidor en lugar de copiarlo desde mi computadora portátil que tenía una versión de Java diferente.
-
¡Gracias! actualizar Gradle JDK a 11 funcionó para mí
–Harshal Pudale
26 de noviembre de 2022 a las 13:34
Creo que el archivo de almacén de claves que desea usar tiene un formato diferente o no compatible con respecto a su versión de Java. ¿Podrías publicar más información sobre tu tarea?
En general, para resolver este problema, es posible que deba volver a crear todo el almacén de claves (usando alguna otra versión de JDK, por ejemplo). Al exportar, importe las claves entre la anterior y la nueva, si logra abrir la anterior en otro lugar.
Si es simplemente una versión no compatible, pruebe el Castillo inflable proveedor de criptomonedas por ejemplo (aunque no estoy seguro de si agrega soporte a Java para más tipos de almacén de claves).
Editar: Miré la especificación de características de BC.
¿Qué estás tratando de hacer exactamente? Publicar algún código de ejemplo sería útil.
– Jonik
27 de junio de 2009 a las 11:48
Y por favor publique qué cosas ya intentó?
– akarnokd
27 de junio de 2009 a las 12:26
No parece que Tomi haya escrito ningún código relacionado con KeyStore; esta pila es simplemente un Applet para comenzar. Parece que el cargador de clases tiene problemas para prepararse para verificar las firmas de los subprogramas.
– erickson
27 de junio de 2009 a las 17:16
@erickson: Sí. Ahora también lo veo. Pero sin una respuesta OP, no podemos continuar, me temo.
– akarnokd
27 de junio de 2009 a las 18:28
¿Cómo generaste el archivo JKS? consulte este hilo: stackoverflow.com/a/59312913/7051466
– Zak Aroui
12 dic 2019 a las 21:30