web-dev-qa-db-fra.com

Erreur avec gradlew:/usr/bin/env: bash: aucun fichier ou répertoire de ce type

Après avoir validé le fichier gradlew de mon projet de ma machine Windows dans le référentiel distant à l'aide de Git, l'appel de gradlew sur mon serveur Linux a échoué avec le message suivant:

/ usr/bin/env: bash: Aucun fichier ou répertoire de ce type

Qu'est-il arrivé?

37
Matthias Braun

La cause du problème était que Git sous Windows avait converti les fins de ligne de gradlew du style Unix (LF) au style Windows (CRLF).

Vous pouvez désactiver cette conversion automatique à l'aide de git config core.autocrlf false.

Régler les fins de ligne de gradlew sur Unix a résolu le problème. Dans Vim, ceci est fait en utilisant set fileformat=unix.

62
Matthias Braun

En effet, le fichier gradlew comporte des terminaisons de fichier Windows. 

Vous pouvez installer dos2unix avec apt-get ou yum en lançant:

Sudo apt-get install dos2unix

Sudo yum install -y dos2unix

puis utilisez dos2unix pour convertir les fins de ligne

de CRLF Windows CarriageReturn + LineFeed 

à LF Linux LineFeed uniquement:

dos2unix ./gradlew

Ensuite, lancez votre gradlew pour un test:

./gradlew clean -d
22
Justin Rhoades

Merci pour les réponses, ceux-ci ont souligné que le problème était Windows créant le gradlew, quand je suis sur mac.

Pour résoudre ce problème, à partir du répertoire de l'application, j'ai exécuté la commande:

gradle wrapper

Cela crée (remplace le cassé) un emballage gradle, cela fonctionne! (notez qu'il utilise votre installation gradle locale pour réparer le wrapper de l'application)

0
Blundell