2012-08-13 5 views

Antwort

86

Unter Linux arbeiten, die den Standort von $JAVA_HOME zu finden:

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

die cacerts sind unter lib/security/cacerts:

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

Unter Mac OS X , zu finden $JAVA_HOME run:

/usr/libexec/java_home 

der cacerts sind unter Home/lib/security/cacerts:

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

UPDATE (OS X mit JDK)

oben Code wurde auf Computer ohne JDK installiert getestet. Mit JDK installiert, as pR0Ps said, es ist bei

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

In OS X läuft die "offizielle" Methode, JAVA_HOME zu finden, '/ usr/libexec/java_home' –

+2

@DanielSerodio, vereinbart. '/ usr/libexec/java_home' gibt mir eine andere Antwort als der' readlink'-basierte Befehl, und ersteres scheint korrekt zu sein, da es die Datei 'cacerts' enthält. –

+1

@DanielSerodio und AndrewFerrier danke Jungs, antworten aktualisiert. – Kuf

33

Ab OS X 10.10.1 (Yosemite), die Lage der cacerts Datei zu

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

Sie wurde auch Readlink konsultieren geändert - f "which java". Es funktioniert jedoch möglicherweise nicht für alle Binär-Wrapper. Es ist wahrscheinlich besser, eine Java-Klasse zu starten.

0

Wenn Sie programmgesteuert auf diese Zertifikate zugreifen müssen, ist es am besten, die Datei überhaupt nicht zu verwenden, sondern über den Trust-Manager darauf zuzugreifen. Der folgende Code ist aus einem OpenJDK Test Fall (was sicher Sammlung der eingebaute cacerts macht, ist nicht leer):

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

So müssen Sie nicht mit Dateipfad oder Kennwort für Schlüsselspeicher befassen.

Verwandte Themen