在我的机器上,我安装了两个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安装。

其他回答

在POM中,你可以设置编译器属性,例如1.8:

<project>
...
 <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
...
</project>

在Linux/Unix上,“mvn”shell脚本中的JAVA_HOME会被中的设置覆盖

$HOME/.mavenrc

在linux中添加JAVA_HOME和MAVEN路径变量

我使用的是MAC Mini - M1芯片,在通过brew install maven安装maven后,我注意到它使用的是java 19,但我更想使用我下载到我的机器中的java 17版本。不幸的是,特定的指示重置默认的mvn java版本。以下是你可以遵循的步骤。

MVN——version #这将给出maven的安装位置 Maven home: /opt/homebrew/Cellar/ Maven /3.8.7/libexec 然后进入/opt/homebrew/Cellar/maven/3.8.7/bin文件夹 编辑mvn文件,我使用vi mvn 下面我编辑了jdk的位置,指向我有java 17 jdk的位置

#!/bin/bash
JAVA_HOME="${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home}" exec "/opt/homebrew/Cellar/maven/3.8.7/libexec/bin/mvn"  "$@"

编辑完成后保存MVN文件 MVN -v现在会显示它的默认Java版本是17

Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /opt/homebrew/Cellar/maven/3.8.7/libexec
Java version: 17.0.3.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "13.1", arch: "aarch64", family: "mac"

加上我的意见,并明确地提供解决方案。

我的Windows机器上安装了两个JDK——JDK 1.5和JDK 1.6。

我的默认(并设置为windows系统环境变量)JAVA_HOME设置为JDK 1.5。

然而,我有一个maven项目,我需要使用JDK 1.6构建(即,JBehave教程的Etsy.com)。

我在这种情况下的解决方案(工作!),是由@DanielBarbarian建议设置在mvn.bat。

对于一些不熟悉window的批处理文件,我基本上只是在mvn.bat(即%MAVEN_HOME%\bin\mvn.bat)中添加了@REM ==== START VALIDATION ====后的set JAVA_HOME=<path_to_other_jdk>行:

@REM ==== START VALIDATION ====
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45\jre
if not "%JAVA_HOME%" == "" goto OkJHome

您只需要在调用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中工作得很好:)