Beim Versuch, gradle auszuführen, wird folgende Fehlermeldung angezeigt:
# gradle
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Wenn ich jedoch die Variable JAVA_HOME überprüfe, erhalte ich:
# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
Mein JAVA_HOME ist in .bashrc definiert und ich habe doppelt überprüft, ob es als Quelle festgelegt ist.
Durch Ausführen wird java -version
außerdem bestätigt, dass JAVA_HOME korrekt eingestellt ist und sich im PATH befindet.
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Ich habe auch die /usr/bin/java
Symlinks überprüft, zu /etc/alternatives/java
denen wiederum die Symlinks korrekt sind/usr/lib/jvm/java-7-oracle/jre/bin/java
Außerdem habe ich überprüft, dass in .bash_profile
oder keine doppelten JAVA_HOME-Definitionen vorhanden sind /etc/profile
.
Meine Frage ist also, wie / warum Gradle findet /usr/lib/jvm/default-java
und was noch wichtiger ist, wie ich es auf das richtige Verzeichnis verweise.
Andere Programme, für die das JDK erforderlich ist, funktionieren einwandfrei. Ich denke, es ist ein Gradle-Problem. Ich habe auch versucht, Gradle neu zu installieren, was keinen Unterschied machte.
Ich verwende 64-Bit-Xubuntu (Ubuntu 13.10-Basis)
quelle
/usr/lib/jvm/default-java
Verzeichnis oder einen Symlink? Und wie haben Sie Gradle installiert?/usr/lib/jvm/default-java
dir. Installiert mit apt (apt-get install gradle)JAVA_HOME
festgelegt werden. WennJAVA_HOME
festgelegt, wird das Skript verwendet$JAVA_HOME/bin/java
, um Gradle auszuführen. Andernfalls wird es verwendetjava
(dhjava
muss auf dem seinPATH
). Möglicherweise verwendet das apt-Paket (von Drittanbietern) ein modifiziertes Startskript.usr/lib/jvm/defult-java
. Vielen Dank für die Hilfesource ~/.bashrc
Ihren Computer nach dem Festlegen von JAVA_HOME neu gestartet?Antworten:
Es stellt sich heraus, dass die bestimmte Gradle-Binärdatei, die ich aus dem Ubuntu 13.10-Repository selbst heruntergeladen habe, versucht, JAVA_HOME zu exportieren. Vielen Dank an Lucas für diesen Vorschlag.
/usr/bin/gradle
Zeile 70:Das Kommentieren dieser Zeile löst das Problem und Gradle findet den richtigen Pfad zur Java-Binärdatei.
Wenn Sie nur die Binärdatei von ihrer Website herunterladen , tritt dieses Problem nicht auf. Dies ist ein Problem mit der Ubuntu-Repo-Version. Es scheint auch einige andere Probleme mit der Version 13.10 zu geben.
quelle
Fügen Sie einen symbolischen Link hinzu
quelle
Die Lösung besteht darin, JAVA_HOME == dir über bin zu machen, wo javac wie in lebt
OK, also endlich den Mülleimer über dem eigentlichen Javac gefunden, also mach das
oben kann vereinfacht und verallgemeinert werden
quelle
Für mich war dieser Fehler auf den Grund zurückzuführen, dass Gradle als sudo installiert war und ich als Standardbenutzer versuchte, Gradle auszuführen.
Versuchen:
oder
quelle
Versuchen Sie, die neueste Version von zu installieren
gradle
.Wenn wir von Ubuntu Repo installieren, wird die alte Version installiert (für mich war es Gradle 1.4). In der älteren Version wird Java von gradle as nach Hause gesetzt
export JAVA_HOME=/usr/lib/jvm/default-java
. Die neueste Version hat dieses Problem nicht.quelle
Hast du
export
deinJAVA_HOME
? Ohne Export wird die Einstellung nicht an die Befehle weitergegeben, die in dieser Shell gestartet wurden. Auchjava -version
nicht verwendetJAVA_HOME
, sondern es verwendet die erstejava
in Ihrem Pfad gefunden. Stellen Sie sicher, dass Ihr.bashrc
Aussehen ungefähr so aussieht:quelle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
(etwas andere Syntax, aber ich nehme an, es ist die gleiche)gradle
Befehl selbst diese Variable setzen? Möglicherweise hat die installierte Persongradle
ein Wrapper-Skript erstellt, mit dem Umgebungsvariablen festgelegt wurden, bevor die Anwendung gestartet wurde. Wenn tomcat, ist es nicht ungewöhnlich , dass dercatalina.sh
(die das Start - Skript ist) , um eine rufensetenv.sh
Umgebungsvariablen einzurichten , die umfassen kannJAVA_HOME
Ich hatte dieses Problem, als ich den folgenden Befehl unter Ubuntu ausführte:
Um dieses Problem zu lösen, habe ich die folgenden Schritte ausgeführt:
Fügen Sie JAVA_HOME zu / etc / environment hinzu:
Hinzufügen:
Lesen Sie es nach dem Speichern:
Schließlich können Sie den Befehl build ausführen.
quelle
Ich hatte das gleiche Problem, aber ich habe den Exportbefehl in Zeile 70 in der Gradle-Datei für die neueste Version 2.13 nicht gefunden, aber ich verstehe dort einen dummen Fehler, der folgt:
Wenn Sie Zeile 70 mit dem Exportbefehl nicht in der Gradle-Datei in Ihrem Gradle-Ordner / bin / finden, überprüfen Sie Ihre ~ / .bashrc, wenn Sie sie finden
export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java
, und entfernen Sie sie stattdessen/bin/java
aus dieser ZeileJAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64
, und im Pfad >>> davonexport PATH=$PATH:$HOME/bin:JAVA_HOME/
wird es seinexport PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java
. Dann rennesource ~/.bashrc
.Der Grund ist, wenn Sie Ihre Gradle-Datei überprüfen, finden Sie in Zeile 70 (wenn es keinen Exportbefehl gibt) oder in Zeile 75,
Das ist in meinem Fall passiert.
quelle
In meinem Ubuntu habe ich 2 Tage lang Kopfschmerzen zu diesem Thema.
Schritt 1. Geben Sie auf dem Terminal ein,
whereis java
dann wird so etwas angezeigtSchritt 2. Notieren Sie sich den Pfad:
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
ausschließen die
bin/java
Ihr JAVA_HOME =
/usr/lib/jvm/java-8-openjdk-amd64
quelle
Für mich war ein expliziter Satz im Argumentabschnitt der Konfiguration externer Tools in Eclipse das Problem.
quelle
Sie können auch in den Ordner bin in Ihrem Gradle-Installationsordner wechseln und den Parameter JAVA_HOME in der Datei gradle.bat korrigieren. In meinem Fall wurde mein JAVA_HOME auf c: \ Programme \ java \ bin gesetzt. Das JAVA_HOME in gradle.bat wurde auf% JAVA_HOME% \ bin \ java.exe gesetzt.
Ich habe das JAVA_HOME in gradle.bat korrigiert und es hat funktioniert.
Danke dir!!!
quelle
Erstellen Sie einen symbolischen Link zum Standard-Java-Verzeichnis.
Sie finden Ihr Java-Verzeichnis unter
quelle
Geben Sie vor dem Ausführen des Befehls Folgendes ein:
Wo
path_to_java_home
ist der Ordner, in dem Ihrbin/java
befindenWenn Java ordnungsgemäß installiert ist, können Sie den Speicherort mithilfe des folgenden Befehls ermitteln:
Vergessen Sie nicht,
bin/java
das Ende des Pfades zu entfernen, während Sie ihn einfügenJAVA_HOME
quelle
Ich hatte auch ein Problem damit. Es sagte falsches Verzeichnis, als es richtig war. Also habe ich gerade eine lokale Variable mit dem Namen JAVA_HOME erstellt, wobei das endgültige / bin / java weggelassen wurde. Es hat gut für mich funktioniert.
quelle
Wenn Ihre GRADLE_HOME- und JAVA_HOME-Umgebung richtig eingestellt ist, überprüfen Sie Ihr JDK-Verzeichnis und stellen Sie sicher, dass sich die Datei java.exe unter dem folgenden Pfad befindet.
Als Fehler in der Datei gradle.bat erwähnt
Es ist nicht in der Lage, Ihre Java-Installation zu finden. Also finden und einstellen
unter
%JAVA_HOME%/bin
wenn alles stimmt.Dies funktioniert für mich (mein Konto wurde vom Client deaktiviert und der Administrator hat java.exe aus meinem Verzeichnis entfernt.)
quelle
In meinem Dockercontainer (da das Problem, Java nicht zu finden, minimal war) war das "was" nicht installiert. Beim Komprimieren eines Projekts mit gradlew wurde in ./gradlew Java gefunden. Installieren, wodurch das Problem behoben wurde.
quelle
[Windows] Wie bereits gesagt, sieht es so aus, als ob .bat -file versucht, java.exe zu finden,
%JAVA_HOME%/bin/java.exe
sodass es nicht gefunden wird, dabin
es zweimal im Pfad wiederholt wird. Entfernen Sie das Extra/bin
aus gradle.bat.quelle
Das Hinzufügen der folgenden Zeilen in build.gradle hat mein Problem gelöst.
quelle