maven如何知道JAVA_HOME在Ubuntu中设置为环境变量

How does maven know JAVA_HOME set as an environment variable inUbuntu

当我从终端 (ubuntu) 在 ubuntu 中键入 mvn --version 时,我得到以下输出。

Warning: JAVA_HOME environment variable is not set.
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-32-generic", arch: "amd64", family:     "unix"

当我没有设置任何 JAVA_HOME 环境变量时,maven 如何安装 java 主页 path.Is 它试图从 /usr/bin/java 命令中找到此路径它已安装在我的系统中,如果是,为什么它会选择直到 jre 的路径。

P.S :我在任何 Maven 配置中也找不到任何 java 路径。

谢谢。

CLIReportingUtils.java(检索 Java 主页的 maven class)所示,该值来自以下调用:

System.getProperty( "java.home", "<unknown java home>" )

java.home 适用于 JRE,而 JAVA_HOME 适用于 JDK。 所以 Maven 正在显示 JRE 主页。

我想,我理解它 now.In maven 脚本,即 (usr/share/maven/bin/mvn) 他们正试图找到使用各种选项安装的 java。

所以在一个地方他们正在做下面的事情

JAVACMD="`which java`"

现在在我的系统中"which java"指向下面

java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

希望这是获得 java 路径的方式。

我会说 JAVA_HOME 环境变量和输出 Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre 之间存在差异。 后者只是安装目录see here.

的输出

所以 Maven 将 运行 Java 在后台并且 java 知道它的安装位置。