设置java_home,但忽略错误

时间:2016-06-18 12:02:18

标签: java macos

在我的Mac(El-Capitan)上,我已将以下命令添加到我的bash_profile文件中:

export JAVA_HOME="$(/usr/libexec/java_home)"

这完美地设置了正确的java_home环境var。但是,在我的一台机器上,我没有安装java,我不想安装java:)。

我有一个dotfiles存储库,所以在我的所有机器上都有相同的.bash_profile文件。现在的问题是,在没有Java的机器上,上面的命令输出:

Unable to find any JVMs matching version "(null)". No Java runtime present, try --request to install.

现在我的问题是:如何在不改变命令含义的情况下摆脱错误/警告?

1 个答案:

答案 0 :(得分:0)

可能将它打包成if语句,检查java是否实际安装?像这样的东西:

if ls /Library/Java/JavaVirtualMachines/j* 1> /dev/null 2>&1; then
  export JAVA_HOME="$(/usr/libexec/java_home)"
fi

这使用ls的返回码(感谢这个问题/答案:Check if a file exists with wildcard in shell script)来确定是否有任何以aj开头的文件或目录(如jdk1.8.0_92.jdk或{ {1}})。只有存在这样的JDK / JRE时,它才会尝试导出JAVA_HOME。