Ubuntu 22.04.1,从 20.04.5 最新更新。
当我尝试用 Maven 构建任何东西时,它会抱怨:
$ mvn -v
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
不过,我可以使用 sudo 获得结果:
$ sudo mvn -v
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.4, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-48-generic", arch: "amd64", family: "unix"
上周在更新到 Ubuntu 22.04 之前我可以构建得很好;然而,当尝试构建一个新项目时,我的老板说我需要使用 sudo 来构建它,所以我这么做了。由于 Java 版本的原因,失败了(Maven 坚持尝试使用 Java 8),无论我做什么,它都不会更改为使用 17。直到我完全删除 Java 8,此时我开始得到JAVA_HOME is not defined correctly
issue.
我尝试卸载所有 Java 版本以及 Maven 并重新安装。
我的 PATH 和 JAVA_HOME 变量似乎确实返回正确:
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk-amd64
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/naf/.local/share/JetBrains/Toolbox/scripts:/usr/lib/jvm/java-17-openjdk-amd64/bin
我不想通过构建 sudo 来搞乱项目,但我不知道该去哪里。