在我的机器上,我安装了两个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?
当前回答
用上面的答案我无法解决这个问题,我尝试了很多方法来解决这个问题,我得到了它。我希望像我这样的人能解决这个问题。
我正在使用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" "$@"\
其他回答
您可以按照下面的说明将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版本,而不会遇到任何麻烦。
编辑:
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版本是什么。
在windows上
如果您不希望更改系统变量中的JAVA_HOME变量。
编辑mvn.bat文件并添加如下一行
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
这可以在@REM ==== START VALIDATION ====之后完成,就像@Jonathan提到的那样
在Mac(和Linux ?)
如果您不想在~/中更改JAVA_HOME变量。bashc或~/.bash_profile
您可以创建一个~/。使用JAVA_HOME工具重新定义您的JAVA_HOME
export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_45`
完整性检查
您可以通过执行以下命令来验证一切是否正常工作。jdk版本应该不同。
mvn - version
then
java - version
我正在使用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
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
在$MAVEN_HOME\bin\mvn中添加上述代码行作为第一条语句。cmd在Windows 10中立即为我工作了。