为什么 JVM 在没有 JAVA_HOME 的情况下工作?
Why JVM work when there is not JAVA_HOME?
$ env
...
当我尝试在 macOS 上打印我的 shell 环境时,我发现没有 JAVA_HOME
,但我的 JVM 仍然有效。
所以我很困惑,我只是想了解JVM如何在shell env
没有指示的情况下找到JDK的位置env
。
那我的JDK位置是/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk
,如果我把这个文件夹移出去,JVM就不行了
我知道这是没用的,而且很愚蠢。但我只是想完全了解这是如何工作的,请帮忙。
JVM 不需要JAVA_HOME
环境变量。一旦你将它安装在 /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk
内部 bin
目录被添加到 PATH
环境变量(或一些其他机制如 update-alternatives
用于放置 java
在系统中可执行 PATH
).
通常是需要 JVM 的第 3 方工具(例如 Apache Maven 或 Tomcat)使用 JAVA_HOME
环境变量来查找已安装的 JVM。
$ env
...
当我尝试在 macOS 上打印我的 shell 环境时,我发现没有 JAVA_HOME
,但我的 JVM 仍然有效。
所以我很困惑,我只是想了解JVM如何在shell env
没有指示的情况下找到JDK的位置env
。
那我的JDK位置是/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk
,如果我把这个文件夹移出去,JVM就不行了
我知道这是没用的,而且很愚蠢。但我只是想完全了解这是如何工作的,请帮忙。
JVM 不需要JAVA_HOME
环境变量。一旦你将它安装在 /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk
内部 bin
目录被添加到 PATH
环境变量(或一些其他机制如 update-alternatives
用于放置 java
在系统中可执行 PATH
).
通常是需要 JVM 的第 3 方工具(例如 Apache Maven 或 Tomcat)使用 JAVA_HOME
环境变量来查找已安装的 JVM。