在我的机器上,我安装了两个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?
当前回答
加上我的意见,并明确地提供解决方案。
我的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
其他回答
Maven使用JAVA_HOME参数来查找应该运行哪个Java版本。我从你的评论中看到,你不能在配置中改变它。
您可以在启动maven之前设置JAVA_HOME参数(如果需要,可以在启动maven之后将其更改回来)。 你也可以进入你的mvn(非windows)/mvn.bat/mvn.cmd(windows)并在那里显式设置你的java版本。
Mac用户, 如果您已经从HomeBrew(Brew)安装了maven, 或者即使你是从别处安装的, 如果您想更改Maven使用的Java的默认版本, 您可以使用以下命令来更改maven使用的版本,
vim ~/.mavenrc
在弹出的gui中输入这个并保存-
JAVA_HOME="(put the Home path of your desired java version package)"
要验证maven的路径是否已更改,可以使用-进行检查
mvn -v
编辑:
Ondrej的回答提供了一个更好的解决方案,它避免了记住别名。
最初的回答:
为安装了多个Java版本的用户添加解决方案
我们有一个很大的代码库,其中大部分是Java。我所做的大部分工作都是用Java 1.7或1.8编写的。由于JAVA_HOME是静态的,我在.bashrc中创建了不同值的别名来运行Maven:
alias mvn5="JAVA_HOME=/usr/local/java5 && mvn"
alias mvn6="JAVA_HOME=/usr/local/java6 && mvn"
alias mvn7="JAVA_HOME=/usr/local/java7 && mvn"
alias mvn8="JAVA_HOME=/usr/local/java8 && mvn"
这让我可以在我的开发机器上从命令行运行Maven,而不管项目上使用的JDK版本是什么。
我正在使用Mac,上面的答案对我没有任何帮助。我发现maven从:~/.mavenrc中指定的路径加载自己的JAVA_HOME
我将文件的内容更改为:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
对于Linux,它看起来像这样:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
我使用了@Jonathan的基本想法。 我设置了窗口:set JAVA_HOME=C:\Program Files\java\AdoptOpenJDK-11.0.8+10 调用mvn清理包-DskipTests