尽管设置了env变量,Maven 3.5仍然找不到$ JAVA_HOME

时间:2017-05-22 15:16:25

标签: java linux maven ubuntu

我正在尝试在Ubuntu 16.04 desktop VM上运行Maven 3.5。我安装了JDK 8并设置$JAVA_HOME并添加了路径。尽管如此,Maven找不到它。这是输出:

root@ubuntu:/# echo $JAVA_HOME
opt/jdk1.8.0_131/bin/java

root@ubuntu:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:opt/jdk1.8.0_131/bin:opt/apache-maven-3.5.0/bin

root@ubuntu:/# 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

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

JAVA_HOME应指向JDK / JRE安装目录而不是java可执行文件。在您的情况下,这似乎是/opt/jdk1.8.0_131/(前导/很重要,如果没有,每个软件都会尝试访问其当前工作目录中的opt目录。

然后,您可以将$JAVA_HOME/bin附加到PATH,这已经在您的情况下正确完成,但显然对Maven无关。

答案 1 :(得分:1)

设置$JAVA_HOME

的路径
/opt/jdk1.8.0_131/         

绝对正确的路径,它是java的主目录。这里1.8.0.131是用于标识Java Installed版本的版本。

而不是

opt/jdk1.8.0_131/bin/java   //wrong path, it is not a home directory for java
  

注意: - 您也可以为多个版本的java安装或提取解压缩的版本.Version实际上可以帮助您根据需要识别和选择正确的版本(如果需要)。

答案 2 :(得分:0)

您的Maven可能位于受保护的目录中

使用sudo mvn -v

运行