【问题标题】:'mvn' is not recognized as an internal or external command, operable program or batch file'mvn' 不是内部或外部命令、可运行程序或批处理文件
【发布时间】:2026-02-11 08:45:02
【问题描述】:

之前可能有人问过问题,但我发现了一种非常奇怪的错误。 当我从 bin 运行 mvn --version 命令时,它会给出版本和其他信息。但是,当我在 bin 外运行时,它会给出异常。两个结果都在下面提到

C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5\bin>mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 19:21:
28+0530)
Maven home: C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_25\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5>mvn --version
'mvn' is not recognized as an internal or external command,
operable program or batch file.

我还在用户变量中设置了 JAVA_HOME,在系统环境变量中设置了 M2_HOME、M2。这些变量和%path% 的输出是:

C:\Users\SAHILBHALLA>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_25

C:\Users\SAHILBHALLA>echo %M2%
C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5\bin

C:\Users\SAHILBHALLA>echo %M2_HOME%
C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5

C:\Users\SAHILBHALLA>echo %path% 
C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPow erShell\v1.0\;C:\Program Files\Java\jdk1.7.0_25\bin;.; 

告诉我哪里错了。我该怎么做才能从中恢复?

【问题讨论】:

  • 你把那些环境变量放到PATH中了吗?
  • 是 mvn.exe 在你的 %PATH% 中的位置吗?例如您的第二个 mvn 调用实际上是从您执行第一个的目录向上发生的,所以我猜它不在路径中。改用bin\mvn 作为命令。
  • Marc B 如果我这样做 bin\mvn 那么我将无法从任何其他位置(从我的工作区)访问
  • 在此处查看解决方案:*.com/a/36601957/2114308
  • 可以考虑this related Q/A。请注意(至少对于最近的 Windows)用户(以上)和系统环境变量(例如 path)之间存在差异。 Screenshot here

标签: java maven-2 maven-3


【解决方案1】:

mvn 的完整路径放在PATH 环境变量中。

【讨论】:

    【解决方案2】:

    如果你想从任何地方执行它,maven 应该在系统的PATH 上。将%M2_HOME%\bin 添加到PATH

    【讨论】:

    • 正如我之前提到的 M2_HoME 和 M2 在系统环境变量中设置
    • 对...这就是@radai 让您将 %M2_HOME%/bin 添加到 %PATH% 的原因。相信我,这会奏效的。
    • @thekbb - 每当您输入可执行文件或 shell (bat) 文件的名称时,操作系统都会在您所在的当前目录中查找它。如果它没有找到它,它将遍历所有%PATH% 中提到的目录。如果您希望 mvn 可访问,则 %M2_HOME%\bin HAS 位于路径上。 %M2_HOME% 存在这一事实是不够的(尽管也需要)
    • @rahul 但 %M2% 不是 mvn 所在的位置,%M2%\bin 应该在路径上
    • M2 已经包含 bin,因为 echo 给出了 C:\Program Files\apache-maven-3.0.5-bin\apache-maven-3.0.5\bin
    【解决方案3】:

    我更喜欢添加 ~/.bashrc 的路径。

    vim ~/.bashrc,然后添加这些行:

    export M2_HOME=/usr/local/apache-maven-your_maven_path&version
    export M2=$M2_HOME/bin
    

    【讨论】:

    • 我相信我们大多数人都更喜欢添加到 .bashrc,但他显然是在 Windows 上,所以他不太可能有 bash。
    • 抱歉没有关注操作系统 :P
    【解决方案4】:

    我的问题解决了,path 没有解决%M2%。当我在路径中添加 maven-bin 的位置而不是 %M2% 之后,该命令起作用了。

    感谢所有努力解决问题的人

    【讨论】:

    • 同样的事情发生在我身上,我也不得不重新启动我的电脑,因为不知何故,当我使用 echo %PATH% 时,我一直看到我不知道为什么的旧路径。
    • 当我添加路径时,这个错误消失了。但是当我重新启动系统时,它再次显示此错误。路径在环境变量中。但我想删除并再次设置路径以使其正常工作。为什么?
    【解决方案5】:

    在 Windows 7 中,我在系统级别添加环境变量后解决了这个问题。 如果您没有足够的权限,请尝试在系统变量而不是用户变量中设置%JAVA_HOME%%M2_HOME%

    【讨论】:

      【解决方案6】:

      使用 Maven bin 位置设置路径后,关闭提示窗口并重新启动它。使用echo %path% 命令确保使用Maven 变量设置路径,然后运行命令mvn -version。不知何故,如果在提示窗口运行时设置了路径,它不会选择新变量。

      【讨论】:

      • 感谢您为 * 提供答案。为了使您的答案更易于阅读,您可以将要格式化为等宽字体的命令放在反引号之间,例如此 `。我已更新您的答案以反映这一点。
      【解决方案7】:

      Here 是适用于 Windows、Unix 和 Mac 操作系统的最佳 Maven 环境设置教程。

      但最后你必须将PATH 变量的值设置为";%M2_HOME%\bin" 而不是"%M2%",因为PATH 变量不能使用“%M2%”来减小值

      【讨论】:

        【解决方案8】:

        首先在用户变量下创建新的“路径”变量解决了这个问题(请注意,在新的Windows安装后,路径变量不会创建为用户变量,仅作为系统变量) 之后,我将 %M2% (指向 maven dir/bin)附加到(新创建的)用户路径变量。之后重新启动 cmd 窗口,它就像一个魅力。

        【讨论】:

          【解决方案9】:

          转到 shell(Windows 的 cmd)并从那里手动设置路径变量。它经常从那里工作。阅读更多http://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/

          【讨论】:

            【解决方案10】:

            首先确定你的java是在运行还是不在cmd中运行这个命令

             C:\>java -version
            

            如果它正在工作,它将显示以下输出:-

            C:\>java -version
            java version "1.8.0_74"
            Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
            Java HotSpot(TM) Client VM (build 25.74-b02, mixed mode)
            

            步骤 1. 首先在用户变量中设置您的 java_home[C:\Program Files\Java\jdk1.8.0_74] 路径。

            步骤 2. 然后在系统变量中设置 MAVEN_HOME[C:\Program Files\maven\apache-maven-3.3.9] 路径,并确保您的 maven 文件夹应仅存在于 C 文件夹中.

            第 3 步。 然后在系统变量中设置 M2 路径并在此处提供 maven bin 位置,即[C:\Program Files\maven\apache-maven-3.3.9\bin]。

            步骤 4. 然后设置新的系统变量,即 变量名 = MAVEN_OPTS in 和 变量值 =-Xms256m -Xmx512m

            步骤 5. 然后编辑路径/系统路径变量,小心不要从那里删除任何内容,只需添加 java_home path ie=;C:\Program Files\Java\jdk1.8.0_74 和M2变量=;%M2%到底。​​p>

            第 6 步。 确保 maven 现在正在工作或不在 cmd 中运行此命令

            > C:\>mvn --version
            

            如果它正在工作,它会显示这个结果:-

            Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-
            7+05:30)
            Maven home: C:\Program Files\maven\apache-maven-3.3.9\bin\..
            Java version: 1.8.0_74, vendor: Oracle Corporation
            Java home: C:\Program Files\Java\jdk1.8.0_74\jre
            Default locale: en_IN, platform encoding: Cp1252
            OS name: "windows 7", version: "6.1", arch: "x86", family: "dos"
            

            【讨论】:

              【解决方案11】:

              在 Windows 10 中,我必须以管理员身份运行 Windows 命令提示符 (cmd)。 这样做为我解决了这个问题。

              【讨论】:

                【解决方案12】:

                转到环境变量并粘贴以下内容:

                在系统变量下: 第 1 步: 新 --> 新用户变量 1.变量名:MAVEN_HOME 2.变量值:D:\apache-maven-3.5.2

                第 2 步: 1. 转到路径 --> 并粘贴这个 - %MAVEN_HOME%\bin

                【讨论】:

                  【解决方案13】:

                  以下对我在 Win10 中的帮助。

                  • 添加%M3_HOME%\bin; 作为用户变量下路径变量的值。
                  • 添加 maven 二进制文件夹的完整路径作为系统变量下 M3_HOME 变量的变量值。
                  • 添加%M3_HOME%\bin; 作为系统变量下路径变量的值。
                  • 在适用的地方单击“确定”。
                  • 关闭现有的命令提示符。
                  • 打开新的命令提示符并导航到 Maven 二进制文件夹。
                  • 输入mvn -version

                  它会起作用的。

                  【讨论】:

                    【解决方案14】:

                    出现此问题是因为在您的操作系统中没有与已安装的 maven 对应的任何环境变量。 为了解决这个问题,我总是使用 Intellij 的捆绑 Maven 并且不再安装单独版本的 Maven,为了找到捆绑的 Maven 的路径去 intellij 并点击 Ctrl+Alt+S -> Build, Execution, Deployment -> Build tool -> Maven - > Maven home directory 你可以在那里找到 intellij 的捆绑 maven 路径,如下图所示。

                    然后转到System environment variables 并设置这些变量:

                    变量名:MAVEN_HOME

                    变量值:C:/Program Files/JetBrains/IntelliJ IDEA 2019.3.1/plugins/maven/lib/maven3

                    定义系统变量MAVEN_HOME后找到变量path并将这一行添加到列表中

                    %MAVEN_HOME%\bin

                    工作完成,打开命令提示符并通过编写mvn -v 进行测试。 99% 的时间它都可以工作,如果你在 1% 之内,则必须重新启动计算机。

                    如果你想在intellij的内部终端使用mvn命令,你必须在设置环境变量后重新启动intellij,那么从终端运行maven命令应该没有问题。

                    【讨论】:

                    • 这为我完成了工作。非常感谢!
                    【解决方案15】:

                    我在 Windows 10 中完成了所有这些操作,但仍然遇到问题。最终结果是 Maven 主文件夹的路径与许多这些答案中的预期并不完全相同,因为它原来是 /apache-maven-3.6.3-bin/apache-maven-3.6.3。一旦我为系统变量和 PATH 变量纠正了这个问题,它就起作用了。简而言之,如果您按照指示设置了环境变量,但它仍然无法工作,我会仔细检查以确保变量确实指向 Maven 主文件夹和机器上的 bin 文件夹的确切路径。

                    【讨论】:

                      【解决方案16】:

                      要解决此问题,请按照以下步骤操作:

                      1. 从以下位置下载 maven zip 文件 http://maven.apache.org/download.cgi
                      2. 解压maven zip文件
                      3. 打开环境变量并在用户变量部分点击new按钮并创建一个名为MAVEN_HOME的变量并将其赋值为bin提取的maven zip的路径
                      4. 现在在系统变量中点击 Path 并点击 Edit 按钮 --> 现在点击 New 按钮并粘贴 bin maven zip 路径
                      5. 现在点击确定按钮
                      6. 打开 CMD 并输入 mvn -version
                      7. 将显示已安装的 Maven 版本并且您的设置已完成

                      【讨论】:

                        【解决方案17】:

                        试试这些步骤...

                        cmd : mvn -version

                        转到 apache-maven 文件夹 > bin

                        复制路径并进入系统属性>环境变量>系统变量

                        路径 > 编辑 > [粘贴文件路径]

                        接下来重启你的机器。

                        https://youtu.be/RQ_Z859Hd7Q

                        【讨论】:

                          最近更新 更多