Ich suche nach Möglichkeiten, wie Sie den Speicherort cacerts
der Standard-Java-Installation ermitteln können, wenn Sie diese nicht haben JAVA_HOME
oder JRE_HOME
definiert haben.
Ich brauche eine Lösung, die zumindest für OS X
und funktioniert Linux
.
Ja. java -v
wird angenommen, dass es funktioniert :)
/usr/libexec/java_home
/usr/libexec/java_home
gibt mir eine andere Antwort als derreadlink
obige Befehl, und der erstere scheint insofern richtig zu sein, als er diecacerts
Datei enthält .Ab OS X 10.10.1 (Yosemite) wurde der Speicherort der
cacerts
Datei in geändertquelle
Wenn Sie programmgesteuert auf diese Zertifikate zugreifen müssen, verwenden Sie die Datei am besten überhaupt nicht, sondern greifen Sie über den Vertrauensmanager darauf zu. Der folgende Code ist aus einem OpenJDK - Test Fall (das stellt sicher , dass die eingebaute cacerts Sammlung nicht leer ist ):
Sie müssen sich also nicht mit dem Speicherort der Datei oder dem Kennwort des Schlüsselspeichers befassen.
quelle
In MacOS Mojave lautet der Speicherort:
Wenn Sie mit sdkman Java-Versionen verwalten, befinden sich die cacerts in
quelle
~/.sdkman/candidates/java/current/lib/security
In High Sierra befinden sich die Cacerts in:
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/security/cacerts
quelle
Sie können auch readlink -f "
which java
" konsultieren . Es funktioniert jedoch möglicherweise nicht für alle Binär-Wrapper. Es ist höchstwahrscheinlich besser, eine Java-Klasse zu starten.quelle