在系统环境变量中定义 Java Path 时是否需要 JAVA_HOME 变量?

use*_*296 3 java environment-variables

我已经在系统环境的路径变量中设置了 JAVA 路径,但没有定义 JAVA_HOME 变量,但我仍然可以执行我的 JAVA 程序,为什么会发生这种情况,定义 JAVA 路径时是否不需要 JAVA_HOME 变量?

QBr*_*ute 6

对于 Java 本身,不需要这样的变量。它所关心的只是其\bin文件夹的路径在PATH. 当您想在控制台上仅调用java.

否则,正如@CarlosHeuberger 所提到的,PATH如果您通过绝对路径调用它,则您甚至不需要变量中java 可执行文件的路径。

我认为其他系统依赖于一个名为 的变量的存在JAVA_HOME,例如 Tomcat 或 Gradle,以便他们知道 Java 所在的位置。

虽然有一个显式JAVA_HOME变量的好处。更新/升级您的 Java 版本后,您只需将该变量指向新的安装文件夹,而无需触摸PATH.

  • 其他使用 java 的应用程序可能需要 Java_Home 来定位系统中的 java。示例 Maven,它需要 Java_Home 变量来定位 java.lang. (2认同)