设置操作系统环境变量后,Apache Maven 安装“'mvn' 不被识别为内部或外部命令”?
Posted
技术标签:
【中文标题】设置操作系统环境变量后,Apache Maven 安装“\'mvn\' 不被识别为内部或外部命令”?【英文标题】:Apache Maven install "'mvn' not recognized as an internal or external command" after setting OS environmental variables?设置操作系统环境变量后,Apache Maven 安装“'mvn' 不被识别为内部或外部命令”? 【发布时间】:2012-08-07 01:46:39 【问题描述】:我已按照 Windows XP 的官方安装说明here。但有时当我执行mvn --version
时,我会收到错误消息,
'mvn' 未被识别为内部或外部命令
我什至重新启动了我的机器几次,但操作系统并不总是能识别 maven 命令。但是当我执行cd %M2_HOME%
或cd %M2%
时,它会将我带到安装目录。我还确保将用户变量 M2
添加到 Path
系统变量中。
那么,什么给了?
【问题讨论】:
我也遇到了同样的问题,但是将 M2 设置为“系统变量”而不是“用户变量”解决了它 @Pshemo,如果您将您的评论作为答案,我会接受。你的建议奏效了,谢谢! :D 也许有人应该让 Apache 知道......我想很多人最初都会被这个绊倒。 确保下载“二进制 tar.gz”版本。我有同样的问题,并意识到我下载了错误的。 我遇到了同样的问题。但是在将系统变量名称从“M2_HOME”更改为“MAVEN_HOME”后它得到了解决 确保“路径”变量中没有任何语法错误。在我的情况下,我在 M2_HOME 之前有一个额外的 ",我删除了它并且它起作用了。 【参考方案1】:解决方法是将M2
从 user 变量移动到 system 变量
【讨论】:
这不是用户与系统变量的问题。我个人只在工作环境中使用用户变量。 @TehHippo 是的,我的回答不是解释问题,而是显示解决方法(这就是为什么我首先将其发布为评论)。但我对它如何使用用户变量为您工作非常感兴趣。也许这是操作系统的问题。我正在使用 Win7 64 位 ult。您使用的是什么操作系统? Same here :) 在我自己的帐户下配置环境变量并能够运行 Maven 没有问题。我也觉得它更干净,因为其他人可能会使用这台 PC,而且他们不需要我的 Maven 设置。他们可能也有自己的。 在我的情况下,我还必须将 M2_HOME 移动到系统变量作为解决方法。我使用的是 Windows 7 Pro sp1 64 位 正如@eddyed 所说,我使用的是 Win 8 64 位系统,必须将 M2 和 M2_HOME 都移动到系统变量中才能正常工作。【参考方案2】:您的 PATH 中似乎不存在 maven。将绝对的 maven home\bin 位置添加到您的 PATH。
【讨论】:
正如我上面所说,“我还确保将用户变量M2
添加到Path
系统变量中”
我也有这个问题,但是添加了绝对路径而不是M2,它没有问题。
我不认为“用户变量”可以添加到系统变量中。后者将首先设置。例如,如果其他用户登录怎么办 - 如果仅为您定义 M2
,PATH=...%M2%/bin 会为他们解析什么?
没问题,不在PATH本身中使用任何变量。【参考方案3】:
我遇到了同样的问题,重新启动命令提示符,然后检查 try mvn --version。它可能一直在设置并工作,但需要重新启动命令提示符才能访问新的系统变量。
【讨论】:
【参考方案4】:下载apache-maven-3.3.9-bin.zip
文件并解压。
然后设置系统变量M2_HOME = B:\sql software\apache-maven-3.3.9
或视情况而定
同时设置变量M2 = %M2_HOME%\bin
打开CMD
,写mvn
我解决了谢谢
【讨论】:
【参考方案5】:只需添加一些为我解决问题的更多信息:
确保 %M2% 和 %M2_HOME% 变量末尾没有分号 (;)。仅当该路径中有多个位置时才应使用此方法,但情况并非如此; 另外,请确保在“Path”变量中,各个路径之间没有任何空格,以分号分隔。感谢 Pawan Valecha 和 Abhijeet Sawant 的提示。
【讨论】:
【参考方案6】:这是我做错了什么:
1) 确保它的 NOT 在 [C:\Program Files (x86)] 它应该在 [C:\Program Files] 我不是 100% 如果这可能会破坏它,但是你永远都不会知道。
2) 我需要在环境变量中做 3 件事才能使其正常工作
-
创建这样的用户变量 [ M2 = %M2_HOME% ]i>
创建这样的用户变量 [M2_HOME = C:\Program Files\Apache Software Foundation\apache-maven-3.2.2]
编辑 PATH 到 [What ever is already in here +];%M2%
【讨论】:
【参考方案7】:同样的问题。
我通过以下方式解决了它:
-
添加 C:\Program Files\apache-maven-3.3.9\bin;到路径
以管理员身份运行cmd
然后mvn --version
工作。
【讨论】:
【参考方案8】:Maven应该通过以下方式配置(可以是用户变量或系统): - M2:%M2_HOME%\bin - M2_HOME:(你的目录到 Maven 的根目录,而不是 \bin) - 路径:%PATH%;%M2%
然后您应该能够从命令提示符运行mvn
。
【讨论】:
【参考方案9】:我遇到了这个问题,发现由于某种原因,环境变量根本没有被解析(执行cd %M2%
告诉我当前目录中没有文件夹%M2%
)。最后添加到 Maven 可执行文件的显式路径对我有用:
C:\apache-maven-3.1.0\bin
【讨论】:
【参考方案10】:您需要设置 M2 和 M2_HOME。 我遇到了同样的问题,问题是我在分号后的 PATH 变量中添加了一个额外的空格。刚刚从路径中删除了空间并且它起作用了。 (Windows 7 机器)
【讨论】:
【参考方案11】:安装步骤
-
下载二进制 zip 存档或 tar.gz。
复制到相应的文件夹中。示例 - C:\apache-maven-3.3.9
添加变量(用户或系统)M2_HOME = C:\apache-maven-3.3.9
添加变量(用户或系统)MAVEN_HOME = C:\apache-maven-3.3.9
使用 C:\apache-maven-3.3.9\bin 更新变量 PATH
打开 CMD 并输入 mvn -v 或 mvn --version 它应该给出以下响应
C:\Users\XXXXXXX>mvn --version 阿帕奇 Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T22:11:4 7+05:30) Maven 主页:C:\apache-maven-3.3.9 Java 版本:1.8.0_40,供应商:甲骨文公司 Java 主页:C:\Program Files\Java\jdk1.8.0_40\jre 默认语言环境:en_US,平台编码:Cp1252 操作系统名称:“windows 8”,版本:“6.2”,arch:“amd64”,家族:“dos”
**在 CMD 上使用 echo %M2_HOME% 确保所有变量的值正确
【讨论】:
【参考方案12】:我通过在用户变量(包括PATH
变量)下创建所有变量来解决这个问题。
这是因为系统变量不会“翻译”用户变量。
所以如果你只想在你的账户中使用maven,你需要添加另一个PATH
变量作为用户变量,而不是系统变量。
【讨论】:
【参考方案13】:正如其他人所做的那样,创建新的系统变量 M2 和 M2_HOME 解决了这个问题。只是在我的 Windows XP 机器上创建用户变量 M2 和 M2_HOME 导致无法从命令行识别 maven。然后我删除了用户变量,创建了系统变量的副本,这一切都变得生动起来。
这是带有 XP sp3 的 apache-maven-3.0.4。 所以:http://maven.apache.org/download.cgi 中的说明似乎不正确。
【讨论】:
【参考方案14】:以管理员身份运行命令提示符为我解决了这个问题。我不必在系统变量下移动 M2 或 M2_HOME。
【讨论】:
【参考方案15】:很可能你没有正确安装 maven。
使用this 下载maven。下载最新的(Binary tar.gz)
文件。它对我有用。
【讨论】:
【参考方案16】:我遇到了同样的问题,我的语法没有问题,但是当我将 M2
、M2_HOME
、JAVA_HOME
环境变量从用户移动到系统时,它开始工作。路径变量保持不变。
【讨论】:
【参考方案17】:将您的 Maven bin 路径添加到系统变量,如下所示
前往
> Enviornment Variables > set Path=D:\apache-maven-3.2.1\bin
或者如果路径已经设置,则在路径后面附加";"
重启命令并尝试
【讨论】:
【参考方案18】:运行 maven 赢得 7
-
将 apache-maven 解压到目录 C:\Program Files\apache-maven-3.2.1
进入【环境变量】设置【路径】C:\Program Files\apache-maven-3.2.1\bin;
打开 cmd 并输入 C:\Program Files\apache-maven-3.2.1> mvn -version
【讨论】:
【参考方案19】:我在 Windows 7 上遇到了类似的问题。起初我在用户变量下设置了 M2、M2_HOME,但是当我回显 %PATH% 时,我没有看到 PATH 下列出的 maven bin 目录。然后我在系统变量下设置 M2,M2_HOME 并且它工作。
【讨论】:
【参考方案20】:从用户变量中删除 M2 和 M2_HOME 并移至系统变量。这样就可以解决问题了
【讨论】:
【参考方案21】:遇到同样的问题,
mvn --version
工作但
maven --version
没有。无论如何,我更喜欢使用'mvn'而不是'maven',所以一切都很好。我也注销/登录以确保。
【讨论】:
【参考方案22】:确保您没有重命名位于M2
环境变量路径中的某个文件夹。如果您有,请相应地更改您的M2
和/或M2_HOME
。
M2
或 M2_HOME
是系统变量还是用户变量都没有关系,只要您使用环境变量所在范围内的同一用户登录即可。
【讨论】:
【参考方案23】:我已经通过在用户变量中添加路径变量作为%JAVA_HOME%\bin;%M2_HOME%\bin;
来解决它
【讨论】:
【参考方案24】:接受的答案无济于事,但下面的简单步骤修复它!
在系统路径下: 不用M2%,用%M2_HOME%\bin,就这么简单。
注意,我的 %M2_HOME% 指向的是 %MV3_HOME% 而不是实际的绝对路径 bcos 我安装了多个版本的 maven 并试图变得聪明(在同一个盒子上为不同的项目切换 maven 版本)。
【讨论】:
【参考方案25】:临时解决方法是设置终端本身的路径。之后为我工作。以管理员身份运行也可以。在我的例子中,M2 和 M2_HOME 都已经设置为系统变量。
【讨论】:
【参考方案26】:我在执行命令 mvn -version 时遇到了同样的问题;但是,我检查了我还在环境变量设置中设置了 mvn 选项,这在命令提示符下给了我一些堆内存问题。所以,我删除了我设置的 maven 选项,然后它对我来说很好。
【讨论】:
【参考方案27】:我遇到了同样的问题,然后我关闭并重新打开 cmd.exe 以使 mvn -v 传播到我的命令提示符。
如果在您设置变量时 cmd 处于打开状态,则它们在该会话中将不可用。
【讨论】:
【参考方案28】:假设你已经为 maven 创建了如下的变量路径:
在系统路径下,点击new
,然后编辑如下:
变量名:MAVEN_HOME
变量值:C:\Program Files\apache-maven-3.5.3\bin
然后继续这些说明:
在系统路径下,点击编辑和添加更新变量路径:
C:\Program Files\apache-maven-3.5.3\bin;
紧接着:
C:\Program Files\Java\jdk\1.8.0_161\bin;
记得在\bin
之后添加分号;
,然后运行您的cmd 提示符并输入:
mvn -v
【讨论】:
以上是关于设置操作系统环境变量后,Apache Maven 安装“'mvn' 不被识别为内部或外部命令”?的主要内容,如果未能解决你的问题,请参考以下文章