JAVA_HOME 定义不正确

Kam*_*din 14 java environment-variables

我安装了 java jdk 热点 1.7。当我输入时,java -version我得到:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Run Code Online (Sandbox Code Playgroud)

这是对的。

我尝试安装 maven,并添加到/etc/environment文件中:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin
Run Code Online (Sandbox Code Playgroud)

现在,当我输入 mvn 时,我得到:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java
Run Code Online (Sandbox Code Playgroud)

但是我没有在环境文件中为 JAV_HOME var 放置 " 标记。

它试图从

”/usr/lib/jvm/jdk1.7.0”/bin/java
Run Code Online (Sandbox Code Playgroud)

路径,其实应该是

/usr/lib/jvm/jdk1.7.0/bin/java
Run Code Online (Sandbox Code Playgroud)

当我命令

$JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我确定路径( /usr/lib/jvm/jdk1.7.0) 是正确的。

Eli*_*gan 15

JAVA_HOME应设置该目录的名称中包含bin目录包含了Java可执行文件(特别是java本身)。

假设您确实有一个/usr/lib/jvm/jdk1.7.0目录,它可能包含一个jre子目录,该子目录包含bin包含java相关可执行文件的目录。

所以你可能应该设置JAVA_HOME/usr/lib/jvm/jdk1.7.0/jre而不是/usr/lib/jvm/jdk1.7.0.