如何获取默认java安装的cacerts的位置?

我正在寻找如何获取默认Java安装的cacerts的位置,当你没有定义JAVA_HOMEJRE_HOME

我需要一个至less适用于OS XLinux的解决scheme。

是。 java -v假定工作:)

Linux下 ,find$JAVA_HOME的位置:

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

cacertslib/security/cacerts

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

mac OS X下 ,find$JAVA_HOME运行:

 /usr/libexec/java_home 

cacertsHome/lib/security/cacerts

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

更新(与JDK的OS X)

上面的代码在未安装JDK的计算机上进行了testing。 安装了JDK后, 正如pR0Ps所说的那样

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

从OS X 10.10.1(Yosemite)开始, cacerts文件的位置已经更改为

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

你也可以参考readlink -f“ which java ”。 但是,它可能不适用于所有的二进制包装。 实际启动一个Java类最有可能更好。