我在OS X Mavericks上运行mvn时出现以下错误:无法运行程序"/ bin/sh":error = 2,没有这样的文件或目录

Cra*_*ght 6 java macos maven

我在MacBook Pro上运行OS X Mavericks.

我安装了maven 3.0.5.

当我运行mvn时,我收到以下错误消息.

Error while executing process. Cannot run program "/bin/sh": error-2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

在你问之前:

PATH="/usr/local/apache-maven-3.0.5/bin:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin:/usr/local/bin:/bin:/usr/bin"

M2_HOME="/usr/local/apache-maven-3.0.5"

M2="/usr/local/apache-maven-3.0.5/bin"

MAVEN_OPTS="-Xms256m -Xmx768m -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)

我也在mvn输出的开头附近看到以下内容:[警告]在构建有效设置时遇到了一些问题

[WARNING] Failed to use environment variables for interpolation: Cannot run program "env": error=0, spawn failed @ 
Run Code Online (Sandbox Code Playgroud)

小智 10

我有同样的问题:exec()失败了任何可执行文件.最后记得我正在使用私人jre.那个jre是原始版本的副本,只是将bin/java设置为可执行文件.

我制作了lib/jspawnhelper可执行文件,它工作正常!

  • 这让我节省了很多!谢谢你!我在 mac 上,我经历了这个可怕的兔子洞,学习了 mac 看门人,但这一直只是一个可执行的问题。 (2认同)

Ren*_* M. -1

您的系统似乎缺少开始解释脚本的“sh”shell。

我刚刚在 Mac OSX 上查找了已安装的 shell,得到了这个结果:

/bin/zsh
/bin/ksh
/bin/tcsh
/bin/bash
/bin/sh
Run Code Online (Sandbox Code Playgroud)

因此,当缺少“/bin/sh”时,请尝试“/bin/bash”。

更好的:

  1. 检查“/bin/sh”是否存在
  2. 如果存在检查运行该命令的用户是否可以执行 shell

因为 shell 二进制文件可能存在但无法执行。然后你必须让它对尝试 mvn 的用户可执行。

希望有帮助;)