我的JAVA_HOME已正确设置为/usr/local/java/jdk1.7.0_01
$echo $JAVA_HOME
/usr/local/java/jdk1.7.0_01
$sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
* 2 /usr/local/java/jdk1.7.0_01/bin/java 1 manual mode
3 /usr/local/java/jre1.7.0_01/bin/java 1 manual mode
我正在使用mvn release:prepare插件来生成git标签并在pom.xml中翻转项目的版本。如果我使用maven 2.2.1它是完美的。当我使用maven 3.0.4时,我得到:
[INFO] Error: JAVA_HOME is not defined correctly.
[INFO] We cannot execute /usr/local/java/jdk1.7.0_01/bin/java/bin/java
我猜maven 3中可能存在一个错误,当它运行时,它会尝试将/bin/java
两次附加到我的JAVA_HOME。
答案 0 :(得分:2)
尝试使用标准的Oracle / Sun JDK,如果这是一个选项。我之前在Debian / Ubuntu上打过这个。我从来没有耐心去弄清楚OpenJDK有什么问题,但它并不能很好地应对Maven。或者......至少......这是我的观察。
答案 1 :(得分:2)
JAVA_HOME必须指向jre,然后设置:
export JAVA_HOME=/usr/local/java/jdk1.7.0_01/jre
答案 2 :(得分:0)
在您的mvn命令文件中搜索JAVA_HOME(使用which mvn
查找)。
如果尚未定义,我会处理JAVA_HOME。
所以也许你可以通过unset JAVA_HOME
答案 3 :(得分:0)
删除旧 Maven 主页中的文件,它将更改为新的。
mv /usr/local/Cellar/maven/3.8.1/libexec /usr/local/Cellar/maven_bak
在此之前,您需要先导出您的 jdk 和 maven。以及如何执行此操作,您可以查看以下链接。