【问题标题】:mvn command not working on mac OS X Yosemitemvn 命令在 Mac OS X Yosemite 上不起作用
【发布时间】:2016-04-06 10:41:23
【问题描述】:

在参考了其他堆栈溢出线程和在线资源以安装/配置 maven 之后,我已经执行了所有必要的步骤,如下所示。这是我所做的:

export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.9

export M2=$M2_HOME/bin

我的Java Home变量也是,设置,如下图:

echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/jdk1.8.0_60/Contents/Home

export PATH=$M2:$PATH  

尽管执行了上述所有操作,但当我运行 mvn --version 时,我得到了 Error: JAVA_HOME is not defined correctly. We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60/Contents/Home/bin/java

PATH 输出如下:

 echo $PATH
/usr/local/apache-maven/apache-maven-3.3.9/bin:/usr/local/apache-maven/apache-maven-3.2.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/MacGPG2/bin

【问题讨论】:

  • 看起来您没有在您的PATH 上添加M2
  • @chrylis 你的意思是,我应该这样做export $PATH=M2
  • 奇怪的是sudo mvn --version 为我工作。
  • 这对我有用,祝你好运:stackoverflow.com/questions/27319495/…

标签: java macos maven


【解决方案1】:

export PATH=$M2:$PATH 应该是 export PATH=$M2/bin:$PATHexport PATH=$M2_HOME/bin:$PATH

JAVA_HOME 也应该是这样的

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60

然后

export PATH=$JAVA_HOME/bin:$PATH

就是这样。

一体机

export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.9
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH

【讨论】:

  • 我还想补充一点,如果您选择使用可以在安装和把东西放在路径上。如果你有时间 - 看看 brew 和 brew cask 。见herehere
  • @11thdimension 感谢 javapapo 的回答和评论。我的路径变量是echo $PATH /usr/local/apache-maven/apache-maven-3.3.9/bin:/usr/local/apache-maven/apache-maven-3.2.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/MacGPG2/bin 我按照建议对JAVA_HOME 变量进行了更改。不过,我需要运行 sudo mvn --version 以确保 maven 正常运行。如果我只运行mvn --version 而没有sudo,我会收到错误Error: JAVA_HOME is not defined correctly. We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60/bin/java
  • 有人能解释一下为什么尽管设置了正确的路径还是会抛出JAVA_HOME 错误吗?
  • 您可以在终端中使用 Java commad 吗?如果您能够使用它,请尝试运行which java,这将为您提供 java 可执行文件的正确路径。如果可以找到路径,请发布输出。
  • /Library/Java/JavaVirtualMachines/jdk1.8.0_60/Contents/Home目录的内容是什么?
【解决方案2】:

我遇到了完全相同的问题,并通过执行以下命令获取 JAVA_HOME 路径来解决它: /usr/libexec/java_home -version

输出: java_home: 选项 `-version' 需要一个参数 /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

将此作为值复制并粘贴到 JAVA_HOME 并重试。 它应该可以工作。

【讨论】:

    猜你喜欢
    • 2015-01-03
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2015-11-28
    相关资源
    最近更新 更多