设置JAVA_HOME时出现错误

35

我最近下载了Maven,并按照这个页面上的指示进行操作。 我的计算机上已经安装了Ant。 现在,如果我想验证Maven是否已经完美地安装,它会给我一个错误,说JAVA_HOME没有设置正确,但是对于Ant来说同样可以正常工作。

For Maven I tried :
1. open cmd
2. type mvn -version
3. Error appeared :
C:\Users\Admin>mvn -version

ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "C:\Program Files\Java\jre7\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation

For ANT I tried and worked :
1. open cmd
2. type mvn -version
3. Apache Ant(TM) version 1.9.1 compiled on May 15 2013

我去了目录,检查了那个目录中是否实际存在java.exe,发现确实存在。我检查了环境变量设置得很好。我重新启动了系统并再次检查,但问题仍然存在。请告诉我我错过了什么。


在系统环境中设置有效的JAVA_HOME路径。 - Sachin
1
尝试这个.. C:\ YourFolder >set path=C:\Program Files\Java\jdk1.7.0_09\bin;,在这种情况下,我的jdk版本是1.7.0_09 或者 你可以查看这个问题。欢迎来到StackOverFlow.. ^^ - Ahmad Azwar Anas
3
使用Maven时,JAVA_HOME变量的值不应包含“bin”之类的目录,只需使用“...\jdk1.7.0_09\”即可。 - Andiana
1
如果您已经正确地完成了所有步骤,但仍然无法正常工作,请尝试重新启动您的计算机。 - user12200634
11个回答

88

JAVA_HOME应该指向jdk目录,而不是jre目录。此外,JAVA_HOME 应该指向jdk主目录,而不是jdk/bin目录。

假设您已经在程序文件目录中安装了JDK,则需要像这样设置JAVA_HOME:

JAVA_HOME="C:\Program Files\Java\jdkxxx"

xxx是JDK版本

请点击此链接了解如何设置JAVA_HOME:

http://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html


2
谢谢Juned,它起作用了,但为什么是jdk而不是jre...以及为什么Ant可以工作而Maven不能。 - paul
谢谢,它已经起作用了!对于OSX路径,我们可以在这里阅读:http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/ - Francesco
这对我有用 https://www.mkyong.com/java/how-to-set-java_home-on-windows-10/ - Jeppen

16
不要将bin文件夹包含在JAVA_HOME环境变量中。

8
请按照这里的说明进行操作。 JAVA_HOME应该像这样。
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_07

需要在路径周围加引号吗? - luisdev

6

JAVA_HOME应该指向像下面图片中的jdk目录中的新变量一样。

JAVA_HOME

PATH应该指向像下面图片中的jdk bin一样。

PATH


1
感谢!这需要放在顶部。 - MoKi

5

JAVA_HOME = C:\Program Files\Java\jdk(JDK版本号)

例如:C:\Program Files\Java\jdk-10

然后重新启动命令提示符即可。


1
谢谢您。在阅读重新启动部分之前,我已经苦苦挣扎了几个小时。请不要忘记重新启动,因为即使您对其进行了多次更改,如果不重新启动它,它仍然无法正常工作。 - gdubs
谢谢。设置后我苦苦挣扎了几分钟。需要重新启动。 - aatif

2

请记得如果您的Java路径中有空格,则要在路径中加上引号。 C:\Program Files\java\javaxxx\ 是不可行的 但是 "C:\Program Files\java\javaxxx\" 就可以。


这并没有提供问题的答案。如果要批评或请求作者澄清,请在他们的帖子下留言 - 您始终可以在自己的帖子上发表评论,并且一旦您拥有足够的声望,您将能够评论任何帖子 - Avi
啊哈,我明白了。只是想留下这个信息,因为我最终遇到了Ruchira Gayan所提供的答案中出现的问题。 "JAVA_HOME应该像这样 JAVA_HOME=C:\Program Files\Java\jdk1.7.0_07" 而且我还得用引号将路径括起来。但是注意到了你的评论。如果有任何问题会再回来问。 - jonorri

2
在终端中运行以下命令并重新启动它。
> set JAVA_HOME="C:\Program Files\Java\jdk-xx.xx"

xx.xx 是 Java 版本


1
JAVA_HOME应该指向JDK的主目录而不是JRE的主目录,如果你要进行编译操作,同样地-我建议你尝试安装JDK在不包含空格的目录中。即使现在这不是你的问题,它也可能会在未来引起问题!

1
你将JAVA_HOME指向了JRE,即Java运行时环境。运行时环境的bin文件夹中没有Java编译器。 你应该下载JDK,即Java开发工具包。安装完成后,你可以在bin文件夹中看到一个名为javac.exe的文件。那就是你的编译器。

0

JAVA_HOME应该指向JDK的主目录,而不是jdk/bin目录。

确保您的计算机上安装了JDK,然后您需要像这样设置JAVA_HOME:

JAVA_HOME="C:\Program Files\Java\jdk" + "Your current installed version of jdk in your system"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接