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

问题描述 投票:0回答:7

使用 Git 将项目的

gradlew
文件从 Windows 计算机提交到远程存储库后,在 Linux 服务器上调用
gradlew
失败,并显示以下消息:

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

发生什么事了?

linux git bash gradlew
7个回答
106
投票

问题的原因是 Windows 上的 Git 将

gradlew
的行结尾从 Unix 样式 (LF) 转换为 Windows 样式 (CRLF)。

您可以使用

git config core.autocrlf false
关闭自动转换。

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


67
投票

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

您可以通过运行

dos2unix
apt-get
安装
yum

sudo apt-get install dos2unix

sudo yum install -y dos2unix

然后使用

dos2unix
转换行尾

来自

CRLF
Windows 回车+换行

LF
仅 Linux 换行:

dos2unix ./gradlew

然后运行您的

gradlew
进行测试:

./gradlew clean -d

14
投票

感谢您的回答,这些问题强调了当我在 mac 上时,问题是 Windows 创建 gradlew。

为了解决这个问题,我从应用程序的目录中运行了命令:

gradle wrapper

这将创建(替换损坏的)一个 gradle 包装器,它可以工作! (请注意,它使用您本地的

gradle
安装来修复应用程序的包装)


2
投票

要永久解决 Linux 和 Mac 上的 Git 签出问题

在 Git 存储库根目录中添加一个名为

.gitattributes
的文件,其中包含以下内容:

gradlew text eol=lf

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

PS:使用此条目也适用于

.sh
文件:

*.sh text eol=lf

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

LF


1
投票

供应商发送了带有 Windows 回车符的

gradlew
。在 vim 中打开
gradlew
显示
^M
行结尾。运行
:e ++ff=dos
删除了行结尾并解决了此问题。

根据https://vim.fandom.com/wiki/File_format


0
投票

按照箭头然后确定,它适用于@macOS #BigSur


0
投票

正如其他答案中提到的,问题是 Windows 上的 Git 将

gradlew
的行结尾从 Unix 样式 (LF) 转换为 Windows 样式 (CRLF)。

更简单的修复方法是按照以下步骤从 Android studio 运行

gradle wrapper

1- 打开 gradle 面板并单击

Execute Gradle Task

2- 类型

gradle wrapper

3- 从建议中选择

gradle wrapper

© www.soinside.com 2019 - 2024. All rights reserved.