我在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
变量来解决了这个问题。然而,我仍然对这个问题的正常解决方案感兴趣。
我还没有注释权限(或者我希望能让它成为一个有用的注释(,但你应该检查$HOME/.mvnrc(或等效的(,看看是否在那里设置了JAVA_HOME。