JAVA_HOME 意思

JAVA_HOME meaning

为什么 ActiveMQ 提供者需要设置 JAVA_HOME env 变量 到 jdk 位置。
它使用该变量做什么?
如果它需要 运行 java 命令和相关命令,为什么要用 JAVA_HOME.
如果 PATH 环境变量设置正确,java 命令总是可用的。

还是我漏掉了一些要点?

编辑: 我不认为我的问题是重复的, 我要问的是关于该变量的非常精确的点,也与 $PATH env 变量和 ActiveMQ 相关。

JAVA_HOME 的实际原因是许多应用程序需要在路径中查找的不仅仅是可执行文件,一些 java 应用程序需要查找它们应该用作的 jar 文件库 -- 请记住,可能安装了多个 java 安装,并且任何给定的应用程序可能需要一个特定的 java 版本,而不是路径上的版本。

考虑使用不在路径上的特定版本 java 的应用。您可以指定 java.exe 的路径,但是如果应用程序需要以某种方式与它们交互而不只是使用它们,它如何知道它应该使用哪组库?它可能可以从环境中计算出来,但可能不准确并且肯定会依赖于平台。

通常有不止一种方法可以设置为应用程序提供此信息,JAVA_HOME 是一种,通常他们根本不需要它。