gpt4 book ai didi

java - java.home 和 JAVA_HOME 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:19 24 4
gpt4 key购买 nike

在我的 java 代码中,我有这一行 System.getProperty("java.home")。在某些环境中,这将返回与设置为 JAVA_HOME 的环境变量相同的值。

但在某些环境中,System.getProperty("java.home") 返回的值与 JAVA_HOME 完全不同。

所以我的问题是,从 Java 的角度来看,java.homeJAVA_HOME 有什么区别?

我查了下知道JAVA_HOME是jdk的安装路径,java.home是jre的安装路径,但是为什么不能匹配jre可以jdk安装的一部分。

最佳答案

正如您所说,JAVA_HOME 指向环境变量(%JAVA_HOME%) 给出的JDK 安装路径。

但是 java.home 指向 JRE installation path ,现在它返回用于运行应用程序的 JRE,请记住,您可以在同一台服务器/计算机上拥有多个版本的 JRE 和 JDK

您可以运行一个应用程序,指定您要使用的 jre 或 jdk。

因此,例如,如果您的环境路径中有:

%JAVA_HOME% = C:\Program Files\Java\jdk1.6.0_24

但是如果您使用特定的 jre 运行应用程序:

"C:\Program Files (x86)\Java\jre1.8.0_73\bin\java" -jar TheJavaFile.jar

在运行时的应用程序内部,您将在 java.home 上获得一个不同版本的 JAVA_HOME

这可以解释为什么在某些情况下您会得到变量和系统属性的不同版本。

另外,请注意,路径可能会有很大的不同,因为JRE和JDK是不同的产品,所以它们安装在不同的位置,因为它们是独立的

现在,关于 JDK 与 JRE 的区别,这张图解释得很清楚:

enter image description here

JDK is a superset of JRE, and contains everything that is in JRE, plus tools such as the compilers and debuggers necessary for developing applets and applications. JRE provides the libraries, the Java Virtual Machine (JVM), and other components to run applets and applications written in the Java programming language.

关于java - java.home 和 JAVA_HOME 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com