web-dev-qa-db-ja.com

gradlewのエラー:/ usr / bin / env:bash:そのようなファイルまたはディレクトリはありません

プロジェクトのgradlewファイルをGitを使用してWindowsマシンからリモートリポジトリにコミットした後、Linuxサーバーでのgradlewの呼び出しが次のメッセージで失敗しました。

/ usr/bin/env:bash:そのようなファイルまたはディレクトリはありません

何が起こった?

37
Matthias Braun

問題の原因は、Windows上のGitがgradlewの行末をUnixスタイル(LF)からWindowsスタイル(CRLF)に変換したことでした。

git config core.autocrlf falseを使用して、自動変換をオフにすることができます。

gradlewの行末をUnixスタイルに戻すと、問題が修正されました。 Vimでは、これはset fileformat=unixを使用して行われます。

67
Matthias Braun

これは、gradlewファイルにWindowsファイルの末尾があるためです。

dos2unixapt-getまたはyumとともにインストールするには、次を実行します。

Sudo apt-get install dos2unix

Sudo yum install -y dos2unix

dos2unixを使用して行末を変換します

fromCRLF Windows CarriageReturn + LineFeed

toLF Linux LineFeedのみ:

dos2unix ./gradlew

次に、テストのためにgradlewを実行します。

./gradlew clean -d
31
Justin Rhoades

答えてくれてありがとう、これらは、私がMacを使っているときに、問題がWindowsがgradlewを作成していたことを強調していました。

これを修正するために、アプリのディレクトリから次のコマンドを実行しました。

gradle wrapper

これにより、動作するgradleラッパーが作成されます(壊れた部分を置き換えます)。 (ローカルgradleインストールを使用してアプリのラッパーを修正することに注意してください)

2
Blundell