gradlew出错:/ usr / bin / env:bash:没有这样的文件或目录

时间:2014-03-10 13:47:13

标签: linux git bash gradlew

使用Git将项目的gradlew文件从我的Windows机器提交到远程仓库后,在我的Linux服务器上调用gradlew失败并显示以下消息:

  

/ usr / bin / env:bash:没有这样的文件或目录

发生了什么事?

6 个答案:

答案 0 :(得分:66)

问题的原因是Windows上的Git将gradlew的行结尾从Unix样式(LF)转换为Windows样式(CRLF)。

您可以使用git config core.autocrlf false关闭自动转换。

gradlew的行结尾设置回Unix样式可以解决问题。在Vim中,这是使用set fileformat=unix完成的。

答案 1 :(得分:26)

这是因为gradlew文件具有Windows文件结尾。

您可以通过以下操作安装dos2unix apt-getyum

sudo apt-get install dos2unix

sudo yum install -y dos2unix

然后使用dos2unix转换行尾

来自 CRLF Windows CarriageReturn + LineFeed的

LF仅限Linux LineFeed:

dos2unix ./gradlew

然后运行gradlew进行测试:

./gradlew clean -d

答案 2 :(得分:1)

感谢您的回答,这些都突出表明问题是Windows在我使用Mac时创建了gradlew。

要解决此问题,请从应用程序的目录中运行命令:

gradle wrapper

这将创建(替换残破的)gradle包装器,该方法有效! (请注意,它使用您的本地gradle安装来修复应用的包装程序)

答案 3 :(得分:1)

要永久解决 Linux 和 Mac 上的 Git 检出

在您的根 Git 存储库目录中添加一个名为 .gitattributes 的文件,其中包含以下内容:

gradlew text eol=lf

更多信息:https://git-scm.com/docs/gitattributes

PS:也适用于使用此条目的 .sh 文件:

*.sh text eol=lf

条目在结帐时起作用,并将这些文件的行尾转换为 LF

答案 4 :(得分:0)

某供应商已将gradlew随Windows回车一起寄出。在vim中打开gradlew会显示^M行的结尾。运行:e ++ff=dos删除了行尾并解决了此问题。

按照https://vim.fandom.com/wiki/File_format

答案 5 :(得分:0)

Follow Arrow 然后 ok ,它适用于 @macOS #BigSurenter image description here