versión tengo saber ruta que mac jdk instalado importar guarda esta donde como certificado cacerts java security

tengo - ¿Cómo obtener la ubicación de los cacerts de la instalación Java predeterminada?



importar certificado java cacerts (4)

A partir de OS X 10.10.1 (Yosemite), la ubicación del archivo cacerts se ha cambiado a

$(/usr/libexec/java_home)/jre/lib/security/cacerts

Estoy buscando cómo obtener la ubicación de los cacerts de la instalación java predeterminada, cuando no tiene JAVA_HOME ni JRE_HOME definidos.

Necesito una solución que funcione al menos para OS X y Linux .

Sí. java -v se supone que funciona :)


En Linux , para encontrar la ubicación de $JAVA_HOME :

readlink -f /usr/bin/java | sed "s:bin/java::"

las cacerts están en lib/security/cacerts :

$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts

En mac OS X , para encontrar ejecutar $JAVA_HOME :

/usr/libexec/java_home

los cacerts están en Home/lib/security/cacerts :

$(/usr/libexec/java_home)/lib/security/cacerts

ACTUALIZACIÓN (OS X con JDK)

el código anterior se probó en la computadora sin JDK instalado. Con JDK instalado, como dijo pR0Ps , está en

$(/usr/libexec/java_home)/jre/lib/security/cacerts


Si necesita acceder a esos certificados mediante programación, es mejor no usar el archivo en absoluto, pero acceda a él a través del administrador de confianza. El siguiente código es de un caso de Test OpenJDK (que asegura que la colección de cacerts incorporada no esté vacía):

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX"); trustManagerFactory.init((KeyStore) null); TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; X509Certificate[] acceptedIssuers = trustManager.getAcceptedIssuers();

Por lo tanto, no tiene que lidiar con la ubicación del archivo o la contraseña del almacén de claves.


También puede consultar readlink -f " which java ". Sin embargo, podría no funcionar para todas las envolturas binarias. Lo más probable es que sea mejor comenzar una clase Java.