在我的机器上,我安装了两个Java版本:(1.6和1.7由我手动安装)。我在不同的项目中都需要他们。但对于Maven,我需要1.7,但我的Maven使用1.6 Java版本。
如何将Maven设置为使用1.7?
在我的机器上,我安装了两个Java版本:(1.6和1.7由我手动安装)。我在不同的项目中都需要他们。但对于Maven,我需要1.7,但我的Maven使用1.6 Java版本。
如何将Maven设置为使用1.7?
当前回答
您可以按照下面的说明将Maven设置为使用任何java版本。
在你的机器上安装jenv链接
通过在命令行中发出以下命令,检查机器中安装的可用java版本。
jenv版本
可以使用以下命令指定全局Java版本。
Jenv global oracle64-1.6.0.39
您可以在命令行中的目录中使用以下命令为任何目录(项目)指定本地Java版本。
Jenv local oracle64-1.7.0.11
在pom.xml中添加正确的Java版本
如果你在命令行中运行maven,使用下面的命令安装jenv maven插件
Jenv使能插件maven
现在,您可以在您的机器上为任何项目配置任何java版本,而不会遇到任何麻烦。
其他回答
Maven使用JAVA_HOME参数来查找应该运行哪个Java版本。我从你的评论中看到,你不能在配置中改变它。
您可以在启动maven之前设置JAVA_HOME参数(如果需要,可以在启动maven之后将其更改回来)。 你也可以进入你的mvn(非windows)/mvn.bat/mvn.cmd(windows)并在那里显式设置你的java版本。
加上我的意见,并明确地提供解决方案。
我的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
在POM中,你可以设置编译器属性,例如1.8:
<project>
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project>
设置Java默认版本 您的系统上可能有两个不同版本的Java。要设置一个为默认值,使用命令:
Sudo选项——配置Java
系统显示不同Java版本的列表。如果您喜欢默认设置,请按Enter。
如果您想更改它,输入您想要的版本号,然后按Enter。
用上面的答案我无法解决这个问题,我尝试了很多方法来解决这个问题,我得到了它。我希望像我这样的人能解决这个问题。
我正在使用brew安装java和maven。 对我来说,我想使用java 1.8。所以我安装了java 1.8 但是maven仍然使用17.0.2版本
解决方案: 安装Java 1.8 我参考这个网站来安装它:https://devqa.io/brew-install-java/
MVN——版本,记住版本\
cat /usr/local/Cellar/maven/VERSION(for me 3.8.5)/bin/mvn
然后你会看到
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-/usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home}" exec "/usr/local/Cellar/maven/3.8.5/libexec/bin/mvn" "$@"\
检查这个目录
ls /usr/local/opt
您将看到openjdk、openjdk@17、openjdk@8等文件
在MVN文件中将openjdk目录更改为openjdk@8:
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-/usr/local/opt/openjdk@8/libexec/openjdk.jdk/Contents/Home}" exec "/usr/local/Cellar/maven/3.8.5/libexec/bin/mvn" "$@"\