Comment obtenir l'emplacement de cacerts de l'installation java par défaut?
4 réponses
sous Linux , pour trouver l'emplacement de $JAVA_HOME
:
readlink -f /usr/bin/java | sed "s:bin/java::"
les cacerts
sont sous lib/security/cacerts
:
$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts
sous mac OS X , pour trouver $JAVA_HOME
run:
/usr/libexec/java_home
les cacerts
sont sous Home/lib/security/cacerts
:
$(/usr/libexec/java_home)/lib/security/cacerts
UPDATE (OS X with JDK)
ci-dessus code a été testé sur ordinateur sans JDK installé. Avec JDK installé, comme pR0Ps dit , c'est à
$(/usr/libexec/java_home)/jre/lib/security/cacerts
à partir de OS X 10.10.1( Yosemite), l'emplacement du fichier cacerts
a été modifié en
$(/usr/libexec/java_home)/jre/lib/security/cacerts
si vous avez besoin d'accéder à ces certs par programmation, il est préférable de ne pas utiliser le fichier du tout, mais d'y accéder via le gestionnaire de confiance. Le code suivant est d'un OpenJDK Test cas (qui s'assure que la collection cacerts construit n'est pas vide):
TrustManagerFactory trustManagerFactory =
TrustManagerFactory.getInstance("PKIX");
trustManagerFactory.init((KeyStore) null);
TrustManager[] trustManagers =
trustManagerFactory.getTrustManagers();
X509TrustManager trustManager =
(X509TrustManager) trustManagers[0];
X509Certificate[] acceptedIssuers =
trustManager.getAcceptedIssuers();
pour que vous n'ayez pas à vous occuper de l'emplacement du fichier ou du mot de passe de keystore.
vous pouvez également consulter readlink-f " which java
". Cependant, il pourrait ne pas fonctionner pour tous les emballages binaires. Il est probablement préférable de commencer un cours en Java.