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

时间:2015-07-03 11:06:04

标签: java maven environment-variables ubuntu-14.04

当我从终端(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 home安装路径。它是否试图从我的系统中安装的/ usr / bin / java命令中找到此路径,如果是这样,为什么是它走的路直到jre。

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

感谢。

3 个答案:

答案 0 :(得分:3)

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

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

java.home用于JRE,而不是用于JDK的JAVA_HOME。 所以Maven正在展示JRE的家。

答案 1 :(得分:1)

我想说@ManyToMany(mappedBy="languageCountries") private List<ProductModel> productModels; 环境变量和输出JAVA_HOME之间存在差异。 后者只是安装目录see here的输出。

所以maven将在后台运行Java,java知道它的安装位置。

答案 2 :(得分:0)

我想,我现在明白了。在maven脚本中,即(usr / share / maven / bin / mvn),他们试图找到使用各种选项安装的java。

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

JAVACMD="`which java`"

现在在我的系统中“哪个java”指向下面的

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

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