如果 java 已经添加到 PATH,我应该设置 JAVA_HOME 吗?

Should I set JAVA_HOME if java is already added to PATH?

如果 java 已经添加到 PATH,为什么某些应用程序(如 Ant)需要 JAVA_HOME 变量?

按照这个想法,为什么在安装 Ant 时我们还必须添加 ANT_HOME 变量,即使我们已经将 Ant 添加到 PATH?

为什么不是这个:

export ANT_HOME=/Library/apache-ant-1.9.4
export PATH=${PATH}:${ANT_HOME}/bin

我们不应该只使用

export PATH=${PATH}:/Library/apache-ant-1.9.4/bin 

除了可读性之外还有其他原因吗?

PATH 变量可以包含多个不同版本的 Java 或 Ant。 JAVA_HOME 和 ANT_HOME 变量唯一标识从命令行启动时使用的 Java 或 Ant 的版本。

此外,这些环境变量通常用在 shell 启动相应程序的脚本中,处理指向单个路径而不是路径集合的环境变量要容易得多。