编程语言
首页 > 编程语言> > java.home和JAVA_HOME之间的区别

java.home和JAVA_HOME之间的区别

作者:互联网

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

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

所以我的问题是从java透视图中java.home和JAVA_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-home,java
来源: https://codeday.me/bug/20191006/1861098.html