在我的机器上,我安装了两个Java版本:(1.6和1.7由我手动安装)。我在不同的项目中都需要他们。但对于Maven,我需要1.7,但我的Maven使用1.6 Java版本。

如何将Maven设置为使用1.7?


当前回答

在终端vi ~/.bash_profile 之后,将下面的路径粘贴到基本配置文件中,并用vim命令wq保存!

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
export M2_HOME=/Users/mj/Tools/apache-maven-3.8.1

执行source ~/。Bash_profile让它永远工作 在此之后,您可以在终端中运行MVN -v进行检查

Maven home: /Users/mj/Tools/apache-maven-3.8.1
Java version: 1.8.0_211, vendor: Oracle Corporation, 
runtime: /Users/mj/Tools/jdk1.8.0_211.jdk/Contents/Home/jre
Default locale: en_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"

如果你想知道原因,请阅读下面的内容

许多基于Java的应用程序使用JAVA_HOME来定义Java运行时环境(JRE)的安装位置。 M2_HOME由Maven使用,它再次告诉程序在哪里找到Maven安装。

其他回答

我使用了@Jonathan的基本想法。 我设置了窗口:set JAVA_HOME=C:\Program Files\java\AdoptOpenJDK-11.0.8+10 调用mvn清理包-DskipTests

解决这个问题的一个简单办法就是

JAVA_HOME=/usr/lib/jvm/java-6-sun/ mvn clean install

在Mac上,它看起来像-

JAVA_HOME = /图书馆/ Java / JavaVirtualMachines / jdk1.7.0_21。jdk/Contents/Home/ mvn clean install

PS:我发现的一个特殊情况是,上面给出的命令对'fish' shell不起作用。我也有bash shell可用,它在那里工作得很好。只需使用命令'bash'切换到bash shell。

您只需要在调用JAVA_HOME之前将您的JAVA版本添加到mvn文件中 例如,我的。bashrc文件中的JAVA版本是JAVA -17 我想用Java-11运行maven:

文件/usr/share/maven/bin/mvn: 我补充说:

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

在脚本中调用JAVA_HOME之前

然后它在Java-11中工作得很好:)

您可以使用maven-compiler-plugin使用不同的JDK配置编译源。

只需在<executable>标签中指定路径到javac。例如,对于java11,它看起来像:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>11</source>
        <target>11</target>
        <fork>true</fork>
        <executable>C:\Program Files\Java\jdk-11.0.1\bin\javac</executable> <!--PATH TO JAVAC -->
    </configuration>
</plugin>

我正在使用jenv,并面临“javax.xml.bind”的编译错误。注释”,因为终端中的MVN使用的是openjdk 13

Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 13.0.2, vendor: N/A, runtime: /usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home

对我来说,它在运行'jenv enable-plugin maven'后工作,就像这里建议的那样 https://stackoverflow.com/a/56487374/1582473