【问题标题】:mvn' is not recognized as an internal or external commandmvn' 未被识别为内部或外部命令
【发布时间】:2014-08-01 05:30:03
【问题描述】:

我已经使用它们各自的值创建了这些变量,但即使这样做,命令提示符也无法识别 mvn 命令
系统变量:

  • 姓名:M2_HOME
  • 值:C:\Program Files\apache-maven-3.2.1

  • 姓名:M2
  • 值:%M2_HOME%/bin;

  • 姓名:path
  • 值:%JAVA_HOME%\bin; %M2_HOME%\bin;

【问题讨论】:

  • 你确认mvn.exe住在C:\Program Files\apache-maven-3.2.1\bin里面吗?
  • 对系统变量应用更改后,您必须重新启动命令提示符。
  • @merlin2011: bin 文件夹包含 2 个批处理文件和一些其他文件,但没有 mvn.exe 文件
  • @user11153 先生,我已经重新启动它
  • 这些文件之一是mvn.bat吗?

标签: windows maven cmd environment-variables


【解决方案1】:

来自Maven documentation page

Maven 与许多跨平台工具一样,在以下情况下可能会遇到问题 重要路径名中有空格字符。说明 下面将针对几个特定项目提醒您这一点。

您已在C:\Program Files\apache-maven-3.2.1 中安装了 Maven

尝试将其重新安装到例如C:\maven,或将当前变量M2_HOME 更改为C:\PROGRA~1\apache-maven-3.2.1

【讨论】:

  • pb pbly 确实来自太空,但无需重新安装,只需使用系统文件夹名称(C:\PROGRA~1)删除路径的空间或用双引号将路径括起来
  • 我试过双引号,但输出还是一样
  • @Gab 谢谢,已编辑。 @user3209819 试试C:\PROGRA~1\apache-maven-3.2.1,不带引号
  • @Gab 非常感谢先生,它成功了,只是用“PROGRA~1”替换了“程序文件”,但原因是什么?
  • 空格字符。请接受我的回答以结束问题;您还应该对上述内容进行投票,因为 Maven 文档引用已被占用
【解决方案2】:

尝试:

  • 重新启动命令提示符
  • 使用 run/cmd 启动命令提示符而不是 shift+右键单击 -"在此处打开命令窗口"
  • 将系统路径放在双引号之间以管理空格字符
  • 根据C:\PROGRA~1\ 替换C:\Program Files\

编辑

这是我自己的配置:

MAVEN_HOME="C:\Program Files\apache-maven-3.2.1"

PATH=XXX;%MAVEN_HOME%\bin;XXX

【讨论】:

  • 请看我的编辑。如果尚未修复,您能否将echo %path% 命令的结果添加到您的问题中?
  • echo %path% 的输出为:C:\Program Files\Java\jdk1.7.0_51\bin;C:\PROGRA~1\apache-maven-3.2.1\bin跨度>
  • 如果您尝试按 PROGRA~1 替换 jdk 路径的程序文件?实际上,您的 mvn 可执行文件似乎很好地添加到了路径中,应该被识别
【解决方案3】:

您好,我遇到了同样的问题,我发现我在 ; 旁边的“路径”上包含了一些空格字符只需删除空格字符,我就能让一切正常工作”

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。

    我为解决这个问题所做的是创建 M2_HOME 和 MAVEN_HOME。 另外,编辑 Path 变量值。

    新建 ->C:\Program Files\Apache Software Foundation\apache-maven-3.6.0\bin

    其中 Apache Software Foundation 是我为提取 apache-maven-3.6.0-bin.zip 文件而创建的文件夹。

    另外,请确保 Java 工作正常并且 JAVA_HOME 设置正确。

    【讨论】:

      【解决方案5】:

      这是我的 maven 的设置。

      名称:MVN_HOME 值:C:\Program Files\apache-maven-3.2.1

      name: path -> 添加以下值(只是 maven 部分) 值:%JAVA_HOME%\bin;%MVN_HOME%\bin; -> 这应该没有空格

      【讨论】:

      • 仍然没有用,我做了这些更改,但输出仍然相同
      【解决方案6】:

      我很难解决这个问题。我在Win7的控制面板里怎么设置环境变量都不行。

      我的最终解决方案是通过 cmd 设置变量。

      set M2_HOME "D:\Program Files\Maven\apache-maven-3.3.3"
      set M2=%M2_HOME%\bin
      set path=%path%;%M2%
      

      【讨论】:

        【解决方案7】:

        我认为你有一个错字:

        改变

        name: M2
        value: %M2_HOME%/bin;
        

        name: M2
        value: %M2_HOME%\bin;
        

        如果它不起作用,请使用路径更改 %M2_HOME%\bin。 在这种情况下:

        C:\Program Files\apache-maven-3.2.1\bin

        【讨论】:

          【解决方案8】:

          确保在系统变量而不是用户变量下设置路径。

          【讨论】:

          • 不,用户变量也应该可以工作。有时无法设置系统变量(例如,如果您没有管理员权限)
          • 当我只在用户变量中的路径上设置了 maven 时,它没有拾取版本。当我将它添加到系统变量时,它对我有用。
          • 也许它对你有用,但可能是因为其他原因。也许您注销或重新启动系统,这就是这种方法有效的原因。不过这对我来说似乎不是一个好的答案。
          【解决方案9】:

          在我的情况下,由于我无法解释的原因,如果 MAVEN_HOME 环境变量是在“系统变量”和“用户变量”中定义的,它会对 Windows 7 产生影响。

          我最初将 JAVA_HOME 和 MAVEN_HOME 作为“用户变量”和“Java -version”工作,但 windows 找不到 mvn(我的路径变量在这两种情况下都是这样的“Path=C:\Program Files\Java\jre1 .8.0_144\bin;E:\Clif\Java\apache-maven-3.6.0\bin;")

          一旦我将两个环境变量从“用户变量”更改为“系统变量”,窗口就可以找到 mvn。

          【讨论】:

            【解决方案10】:

            我在变量 path 中使用 %MAVEN_HOME% 并出现问题,即使 echo %MAVEN_HOME% 命令显示正确的道路。

            我在路径中将其更改为 C:\Program Files\apache-maven-3.6.1\bin(当然取决于您的版本),它就像一个魅力。

            【讨论】:

              猜你喜欢
              • 2012-11-21
              • 2019-01-05
              • 2013-10-06
              • 1970-01-01
              • 1970-01-01
              • 2014-04-29
              • 1970-01-01
              • 1970-01-01
              • 2013-10-11
              相关资源
              最近更新 更多