Di Linux , untuk menemukan lokasi $JAVA_HOME
:
readlink -f /usr/bin/java | sed "s:bin/java::"
di cacerts
bawah lib/security/cacerts
:
$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts
Di bawah mac OS X , untuk menemukan $JAVA_HOME
jalankan:
/usr/libexec/java_home
di cacerts
bawah Home/lib/security/cacerts
:
$(/usr/libexec/java_home)/lib/security/cacerts
UPDATE (OS X dengan JDK)
kode di atas telah diuji di komputer tanpa menginstal JDK. Dengan JDK terinstal, seperti yang dikatakan pR0Ps , itu di
$(/usr/libexec/java_home)/jre/lib/security/cacerts
/usr/libexec/java_home
/usr/libexec/java_home
memberi saya jawaban yang berbeda darireadlink
perintah -based di atas, dan yang pertama tampaknya benar, karena berisicacerts
file.Pada OS X 10.10.1 (Yosemite), lokasi
cacerts
file telah diubah menjadisumber
Jika Anda perlu mengakses sertifikat tersebut secara terprogram, yang terbaik adalah tidak menggunakan file sama sekali, tetapi mengaksesnya melalui pengelola kepercayaan. Kode berikut ini berasal dari kasus Uji OpenJDK (yang memastikan koleksi cacerts yang dibuat tidak kosong):
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX"); trustManagerFactory.init((KeyStore) null); TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; X509Certificate[] acceptedIssuers = trustManager.getAcceptedIssuers();
Jadi Anda tidak perlu berurusan dengan lokasi file atau kata sandi keystore.
sumber
Di MacOS Mojave, lokasinya adalah:
/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/security/cacerts
Jika menggunakan sdkman untuk mengelola versi java, cacert dalam format
sumber
~/.sdkman/candidates/java/current/lib/security
Di High Sierra, cacert terletak di:
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/security/cacerts
sumber
Anda juga dapat berkonsultasi dengan readlink -f "
which java
". Namun ini mungkin tidak berfungsi untuk semua pembungkus biner. Kemungkinan besar lebih baik untuk benar-benar memulai kelas Java.sumber