如何获取默认java安装的cacerts的位置?
我正在寻找如何获取默认Java安装的cacerts的位置,当你没有定义JAVA_HOME或JRE_HOME 。
我需要一个至less适用于OS X和Linux的解决scheme。
是。 java -v假定工作:)
在Linux下 ,find$JAVA_HOME的位置:
readlink -f /usr/bin/java | sed "s:bin/java::"
cacerts在lib/security/cacerts :
$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts
在mac OS X下 ,find$JAVA_HOME运行:
/usr/libexec/java_home
cacerts在Home/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类最有可能更好。