我在Windows机器上使用Git将项目的gradlew
文件提交到远程仓库后,在Linux服务器上调用gradlew
时出现以下错误信息:
/usr/bin/env: bash: 没有那个文件或目录
发生了什么?
gradlew
的行尾符从Unix风格(LF)转换为Windows风格(CRLF)。您可以使用git config core.autocrlf false
关闭自动转换。将gradlew
的行尾符设置回Unix风格即可解决问题。在Vim中,可以使用:set fileformat=unix
来完成此操作。这是因为gradlew文件使用了Windows的文件结束符。
您可以通过运行以下命令安装dos2unix
:apt-get
或yum
。
sudo apt-get install dos2unix
sudo yum install -y dos2unix
然后使用dos2unix
将行尾转换为LF
,从CRLF
Windows 回车+换行符 转换到 LF
Linux 换行符。
dos2unix ./gradlew
然后运行gradlew
进行测试:
./gradlew clean -d
感谢解答,这些突出显示了问题是Windows创建gradlew的时候,我在使用Mac。
要解决这个问题,在应用程序的目录中运行以下命令:
gradle wrapper
这将创建(替换破损的)一个可工作的gradle包装器!(请注意,它使用您本地的gradle
安装程序来修复应用程序的包装器)
gradle wrapper
命令,而其他答案没有这样做。 - Blundellbrew install gradle
。 - Blundellgradlew text eol=lf
.sh
文件也适用:*.sh text eol=lf
LF
。一个供应商使用了带有Windows回车符的 gradlew
进行发货。在vim中打开 gradlew
后,显示出现了 ^M
行尾符。运行 :e ++ff=dos
命令可以去除行尾符并解决此问题。