如何解决Maven在Ubuntu上无法正确检测到JAVA_HOME
我在Ubuntu 18.04.5中玩弄一些环境变量,试图使它们在每次重新打开终端时都不会重置。
但是,现在Maven对每个命令都有此错误:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
我非常确定我的$JAVA_HOME
指向正确的目录,因为命令echo $JAVA_HOME
返回:
/usr/lib/jvm/java-11-openjdk-amd64
命令$JAVA_HOME/bin/java --version
返回:
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1,mixed mode,sharing)
在发生此错误之前,我已将以下行添加到/etc/environment
:
export JAVA14="/usr/lib/jvm/jdk-14"
export JAVA11="/usr/lib/jvm/java-11-openjdk-amd64"
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
以及以下~/.bashrc
行:
source /etc/environment
此外,在进行一些编辑之后,我像以前一样返回了所有内容,并且命令sudo update-alternatives --config java
返回了以下内容:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64 1 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
因此选择了正确的路径,而且我还没有更改任何其他update-alternatives
配置。
如何使Maven再次看到$ JAVA_HOME?
编辑:
我通过直接编辑/usr/share/maven/bin/mvn
脚本并将java
可执行文件的硬编码路径硬编码为JAVACMD
变量来解决此问题。但是,我仍然对 normal 解决此问题感兴趣。
解决方法
我还没有评论特权(或者我希望这对猜测评论很有帮助),但是您应该检查$ HOME / .mvnrc(或等效项)以查看是否在其中设置了JAVA_HOME。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。