java - 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
解决方案
我还没有评论权限(或者我希望这有助于猜测评论)但您应该检查 $HOME/.mvnrc (或等效项)以查看是否在那里设置了 JAVA_HOME。
推荐阅读
- vim - VIM中'wordwrap'设置中的'Cursorline'
- c# - Xamarin.Forms ListView 滚动缓慢且生涩
- c# - 带有 [HTTPPost] 的 .Net Core 3.1 API 操作方法返回 405 且响应头不正确允许
- javascript - 设置键盘快捷键以触发 Chrome 扩展
- spring - ChannelInterceptorAdapter 已弃用 - 替代品是什么?
- php - Woocommerce - 在结帐期间更改总文本并添加费用
- swiftui - 导致导航链接初始化丢失的状态变量
- redis - 通过 RedissonScript 在 redis 上执行 lua 脚本时的解码器问题
- python - 在熊猫中,如何计算每列与系列的协方差?
- serenity-bdd - SerenityJS - NPM CI 命令入门问题 - Serenity-BDD CLI jar