当我从终端(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路径。
感谢。
答案 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路径的方式。