在我的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.
现在我的问题是:如何在不改变命令含义的情况下摆脱错误/警告?
答案 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。