penso che sia chiaro a tutti che Java ha bisogno di un modo per identificare il truststore impostazione predefinita, quando si tratta di SSL, in modo che questa informazione è essere passato a JAVA, in qualche modo, quindi penso che il "aggiornamento "La domanda in mano è come farlo in un modo do-it-one-and-then-forget-everytime.
Il modo migliore che ho trovato è stato impostare la variabile di ambiente JAVA_TOOL_OPTIONS
a livello di sistema operativo, se questa variabile di ambiente è impostata, JAVA verrà avviato per impostazione predefinita con gli argomenti forniti in questa variabile di ambiente.
Quindi, non c'è bisogno di impostare-Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
ogni volta che viene lanciato JVM, invece impostareJAVA_TOOL_OPTIONS
variabile d'ambiente "una volta" al vostro livello di sistema operativo con valore-Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
e poi si è fatto.
riportano di seguito le estratto dal 1 ° "Ulteriori letture":
Quando questa variabile è impostata, la funzione JNI_CreateJavaVM (nel JNI Invocation API) antepone il valore della variabile di ambiente alle opzioni fornite nel suo argomento JavaVMInitArgs.
unica avvertenza di guardare fuori è indicato di seguito, estratto dal 1 ° "Ulteriori letture":
In alcuni casi questa opzione è disabilitata per motivi di sicurezza, per esempio, sul sistema operativo Solaris il l'opzione è disabilitata quando l'utente effettivo o ID di gruppo differisce dall'ID reale.
Qui di seguito è un altro avvertimento (estratto dal # 1 di "Ulteriori letture") a cui prestare attenzione, ma penso che in quanto contesto non si tratta di argomento selezione VM quindi non è rilevante, ma solo per citare.
Poiché questa variabile viene esaminato al momento JNI_CreateJavaVM è chiamato, non può essere utilizzato per aumentare la linea di comando con opzioni che normalmente essere gestiti dal programma di avvio, per esempio, selezione VM utilizzando la -client o l'opzione -server.
Approfondimenti: