在我的机器上,我安装了两个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?
当前回答
我正在使用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
其他回答
您只需要在调用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中工作得很好:)
在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。
最近安装了Java10,看看有什么新的和有趣的。一旦我这样做了,并尝试运行现有的项目使用java8。 令我惊讶的是,maven开始使用java10作为它的默认java版本,尽管我的JAVA_HOME设置为使用java8 - /usr/libexec/java_home -v 1.8
鉴于,我的安装是使用brew完成的- brew只是Mac OS的包管理器,我的M2_HOME是自动设置的。这通常在/usr/local/Cellar/maven/3.5.4
带着这个新发现的知识,我跑了
nano /usr/local/Cellar/maven/3.5.4/bin/mvn
内容是
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-$(/usr/libexec/java_home)}" exec "/usr/local/Cellar/maven/3.5.4/libexec/bin/mvn" "$@"
重要的位
"${JAVA_HOME:-$(/usr/libexec/java_home)}"
要解决这个问题,需要指定maven默认使用的java版本。所以在我的例子中,我需要java8。
按如下步骤更新/usr/local/Cellar/maven/3.5.4/bin/mvn文件
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-$(/usr/libexec/java_home -v 1.8)}" exec "/usr/local/Cellar/maven/3.5.4/libexec/bin/mvn" "$@"
用上面的答案我无法解决这个问题,我尝试了很多方法来解决这个问题,我得到了它。我希望像我这样的人能解决这个问题。
我正在使用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" "$@"\