![](/img/trans.png)
[英]Maven configeration error - (JAVA_HOME is set to an invalid directory)
[英]Unable to install Maven on Windows: “JAVA_HOME is set to an invalid directory”
我遵循了Maven教程 ,但仍然无法在Windows上安装Maven。
当我在命令提示符下运行以下内容时:
E:\Documents and Settings\zach>mvn --version
我明白了:
'mvn' is not recognized as an internal or external command, operable program or batch file.
我导航到maven安装文件夹并运行mvn --version
并得到:
E:\java resources\apache-maven-2.2.0\bin>mvn --version
ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "E:\Sun\SDK\jdk\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation
但是当我运行java -version
我得到:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)
所以我确实安装了Java。 谁知道问题是什么?
问题与你的道路有关。
确保JAVA_HOME变量引用Java安装的主目录 。 如果从“E:\\ Sun \\ SDK \\ jdk \\ bin”执行Java,则JAVA_HOME变量需要指向“E:\\ Sun \\ SDK \\ jdk”。
注意:JAVA_HOME不应以“\\ bin”结尾1 。
确保没有在JAVA_HOME变量2中放置分号。
注意:JAVA_HOME应该是单个目录名,而不是以分号分隔的“PATH-like”目录名列表。
另请注意,如果您在关于路径名中的空格的Maven on Windows指令中忽略了此建议,则可能会遇到问题。
“像许多跨平台工具一样,Maven 在重要路径名中有空格字符时会遇到问题。”
“您需要安装Java SDK(例如,从Oracle的下载站点),您应该将其安装到没有空格的路径名 ,例如c:\\ j2se1.6。”
“你需要解压缩Maven发行版。不要在源代码中间解压缩它;选择一些位置( 路径中没有空格! )并在那里解压缩。”
对此的简单补救措施是在不同的位置重新安装Java或Maven,以便路径中没有空间
1 - ....除非您为安装位置的名称做出了疯狂的选择。
2 - 显然,Windows路径问题的常见“伏都教”解决方案是最终敲击分号。 一般不推荐,绝对不能在这里工作。
错误:JAVA_HOME设置为无效目录。 JAVA_HOME =“E:\\ Sun \\ SDK \\ jdk \\ bin”请在您的环境中设置JAVA_HOME变量以匹配Java安装的位置
JAVA_HOME
应设置为E:\\Sun\\SDK\\jdk
。 应将PATH
设置为包含%JAVA_HOME%\\bin
。
我用Grails安装遇到了这个问题。
问题是我的JAVA_HOME是c:\\sun\\jdk\\
而我的PATH有%JAVA_HOME%bin
我将其更改为: JAVA_HOME= "c:\\sun\\jdk" and PATH="%JAVA_HOME%\\bin"
之后它起作用了。
我遇到了同样的问题,刚刚更新了JAVA_HOME为我工作。
以前是这样的:C:\\ Program Files \\ Java \\ jdk1.6.0_45 \\ bin刚刚删除了\\ bin,它对我有用。
由于我目前工作地点的安全限制,我无法在基于Windows的PC上设置环境变量。
我的解决方法是将mvn.bat文件从%M2%复制到C:\\ WINNT并将以下内容添加到批处理文件的顶部:
@REM Needed as unable to set env variables on my desktop PC.
set MAVEN_OPTS=-Xms256m -Xmx1024m
set M2_HOME=C:\apache-maven-3.0.4
set M2=%M2_HOME%\bin
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_15
set PATH=%JAVA_HOME%\bin;%M2%;%PATH%
不是最好的解决方案,但它的工作原理。 如果任何人有任何其他方式或解决方案,标准的环境变量无法设置到系统中,我欢迎他们的回应。
我有同样的问题,上面的答案都没有为我修复,因为我的env变量都设置好了。 我刚刚重新安装了我的Java。
有用的是
C:\\path\\to\\apache-maven-3.0.4\\bin
并打开mvn.bat
文件。 @SET JAVA_HOME=C:\\progra~1\\java\\jdk1.7.0_03
我不知道这是否是Windows特定的,但它可能对某人有帮助!
经过多次尝试尝试失败后,我找到了解决方案
这是“;” 在JAVA_HOME的末尾,我总是把它放在我设置的每个新变量的末尾。 所以摆脱;
JAVA_HOME也将它设置在用户变量中(没有“;”)
你应该设置没有bin目录的JAVA_HOME或MAVEN_HOME,例如: - JAVA_HOME = C:\\ Program Files(x86)\\ Java \\ jdk1.7.0_45 - MAVEN_HOME = C:\\ Program Files(x86)\\ apache-maven-3.1.1 now path = .....;%MAVEN_HOME%\\ bin;%JAVA_HOME%\\ bin它正常工作
有时在Windows中,路径中的空格无法正确识别
如果你有一个路径问题和路径似乎
c:\\Program Files\\....
尝试以旧的DOS格式更改它
"C:\\Progra~1\\...
您可以使用dir /x
来检查正确的语法(第三列)
C:\\>dir /x ... 11.01.2008 15:47 <DIR> DOCUME~1 Documents and Settings 01.12.2006 09:10 <DIR> MYPROJ~1 My Projects 21.01.2011 14:08 <DIR> PROGRA~1 Program Files ...
在我的电脑JAVA_HOME是(它的工作原理)
"C:\\Progra~1\\Java\\jdk1.8.0_121"
在Windows 10中测试过
JAVA_HOME应该像这样C:\\ PROGRA~1 \\ Java \\ jdk
希望这会奏效!
这似乎是旧的帖子,但我仍然想分享这个问题是如何修复我的。
对于没有管理员权限的用户以及打开命令提示符的用户,它在用户权限下运行。 这意味着,你可能有像C:\\ Users \\的路径
所以在尝试C:\\ Users \\ XYZ> mvn --version时,它实际上是从用户变量搜索JAVA_HOME路径而不是环境变量中的系统变量。
因此,为了解决这个问题,我们需要在用户变量中为JAVA_HOME创建一个环境变量。
希望,这有助于某人。
运行eclipse并运行Maven将要求您存储两个路径变量,一个位于jdk1.7_x_x_x位置,也存储在jdk1.7_x_x_ \\ bin中。 如果您使用的是Windows,则在环境变量中时,请执行以下操作:
1)创建一个名为JAVA_HOME的USER变量。 将其指向JAVA文件的位置。 例如:“C:\\ Program Files \\ Java \\ jdk1.7.0_51”(删除引号)
2)在PATH下,将%JAVA_HOME%附加到PATH。 这会将步骤1中的文件位置添加到PATH中。 这对MAVEN来说很有用
3)如果您正在使用eclipse,则需要将路径指向“C:\\ Program Files \\ Java \\ jdk1.7.0_51 \\ bin”。 现在将%JAVA_HOME%\\ bin附加到路径的末尾。
4)你的路径应该是这样的:C:\\ Program Files(x86)\\ Google \\ google_appengine \\; C:\\ Users \\ username \\ AppData \\ Roaming \\ npm;%M2%;%JAVA_HOME%;%JAVA_HOME%\\ bin
注意:%%s%中包含的项目分配了变量。 它看起来多余但必要。 您可以输入以下内容确认一切正常:
java -version
javac -version
mvn -version
在comman提示符中键入的这三个语句中的每一个都不应返回错误。
使用Windows 10
我正面临着问题..然后我完全删除了JAVA_HOME变量并在PATH中添加了%JAVA_HOME%\\ bin然后它工作了!!! 对我来说
JDK已将java.exe的位置切换为1.6到1.7!
在我的例子中,我发现JDK的JAVA_HOME必须在末尾添加\\ jre。 mvn bat文件正在寻找java.exe,它在JAVA_HOME \\ bin中查找它。 它不适用于JDK 1.7; 它在JAVA_HOME \\ jre \\ bin中。 在JDK 1.6中,它位于JAVA_HOME \\ bin中。
希望这有助于某人。
我的情况有点不同。
JAVA_HOME
设置正确,指向1.7 PATH
设置正确。 我的简单的新Maven项目仍然无效。 我注意到的是当我运行mvn clean install
时日志的差异。 对于我的旧Maven项目,它表明了
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ oldProject---
但对于我的新项目,它显示:
[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ newProject ---
所以,我查看了POM.xml
并在旧项目的POM中注意到了这一点:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
基本上,这个插件告诉使用哪个编译器版本进行编译。 刚刚将它添加到新项目的POM.xml
并且工作正常。
希望它对某人有用。
我使用的是Windows 7,我遇到的问题很简单:
我有这个用于我的JAVA_HOME环境变量值:
"C:\Program Files\Java\jdk1.7.0_51;"
什么时候需要:
"C:\Program Files\Java\jdk1.7.0_51"
半结肠再次击中!
:)
这就是我解决这个问题的方法,所以这应该是一个可能的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.