Error with gradlew: /usr/bin/env: bash: No such file or directory

前端 未结 4 1002
南笙
南笙 2020-12-08 06:18

After committing my project\'s gradlew file from my Windows machine to the remote repo using Git, invoking gradlew on my Linux server failed with t

相关标签:
4条回答
  • 2020-12-08 07:00

    This is because the gradlew file has Windows file-endings.

    You can install dos2unix with apt-get or yum by running:

    sudo apt-get install dos2unix
    
    sudo yum install -y dos2unix
    

    and then use dos2unix to convert the line-endings

    from CRLF Windows CarriageReturn + LineFeed

    to LF Linux LineFeed only:

    dos2unix ./gradlew
    

    Then run your gradlew for a test:

    ./gradlew clean -d
    
    0 讨论(0)
  • 2020-12-08 07:08

    The problem's cause was that Git on Windows converted the line endings of gradlew from Unix style (LF) to Windows style (CRLF).

    You can turn off that automatic conversion using git config core.autocrlf false.

    Setting the line endings of gradlew back to Unix style fixed the problem. In Vim this is done using :set fileformat=unix.

    0 讨论(0)
  • 2020-12-08 07:12

    A vendor had shipped a gradlew with Windows carriage returns. Opening gradlew in vim revealed ^M line endings. Running :e ++ff=dos removed the line endings and resolved this issue.

    As per https://vim.fandom.com/wiki/File_format

    0 讨论(0)
  • 2020-12-08 07:18

    Thanks for the answers, these highlighted that the problem was Windows creating the gradlew, when I am on mac.

    To fix this, from the directory of the app I ran the command:

    gradle wrapper

    This creates (replaces the broken) a gradle wrapper, that works! (notice it uses your local gradle install to fix the wrapper of the app)

    0 讨论(0)
提交回复
热议问题