JAVA_HOME定义不正确


14

我安装了Java JDK热点1.7。当我键入时,java -version我得到:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

这是对的。

我尝试安装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

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

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

但是我没有在环境文件中添加JAV_HOME var的标记。

它试图从

”/usr/lib/jvm/jdk1.7.0”/bin/java

路径,实际上应该是

/usr/lib/jvm/jdk1.7.0/bin/java

当我命令

$JAVA_HOME

我正进入(状态:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

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


您可以做一个ls -al /usr/lib/jvm并确认目录名的格式为“ jdk1.7.0”吗?使用Oracle时,他们倾向于使用奇怪的文件夹名称
Thomas Ward

ls /usr/lib/jvm/java-7ls "/usr/lib/jvm/java-7"/bin产量,并且应该为我产生相同的结果(这不是空的)。最后一部分,java-7,是手动修改的结果-它可能会并且对您会有一些不同。验证是否存在这样的文件夹(jdk1.7.0)。
用户未知

total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 运行此ls -al /usr/lib/jvm 命令后,我得到了
Kamoliddin 2012年

请注意,要在控制台中查看变量,应键入:echo $VARNAME。如果您只是这样做$VARNAME,它将执行该变量中的内容。
亚历克西斯·威尔克

Answers:


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


安装JDK(不仅是JRE)通常会导致包含bin目录的JDK目录以及本身包含bin目录的JRE目录。但是JAVA_HOME总是设置为父目录,而不是jre目录。
用户未知

有趣的是,我需要将其设置为jdk否?我会写代码在Java中,编译,部署等
Kamoliddin

@Kamoliddin如果Maven $JAVA_HOME用来知道javac其他开发二进制文件在哪里,那么是的,您需要将其设置为包含这些二进制文件jdkbin目录。
伊利亚·卡根

谢谢,我不知道,重新启动后它可以工作,我想不需要重新启动就可以应用更改。我什么都没改变。有效。
Kamoliddin

不知道为什么他使用jdk1.7.0完全/usr/lib/jvm/java可以满足。javajavac。替代方案会解决这一问题
Brian
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.