JAVA_HOME ist auf das falsche Verzeichnis eingestellt

12

Hallo Ubuntu-Benutzer,

Ich versuche zu lernen, wie man Modifikationen an Minecraft schreibt. Um dem von mir verwendeten Tutorial zu folgen, muss ich einen "Gradlew" ausführen. Der Befehl lautet wie folgt

./gradlew setupDecompWorkspace eclipse

Dies ergibt folgendes

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/java/jdk1.8.0_20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Offensichtlich weiß ich nicht, was ich tun soll oder was das bedeutet. Jede Hilfe wird sehr geschätzt.

Joseph_carp
quelle

Antworten:

28

Geben Sie vor dem Ausführen des Befehls Folgendes ein:

export JAVA_HOME="path_to_java_home"

Wobei path_to_java_home der Ordner ist, in dem sich Ihr bin / java befindet.

Wenn Java ordnungsgemäß installiert ist, können Sie den Speicherort mithilfe des folgenden Befehls ermitteln:

readlink -f $(which java)

Vergessen Sie nicht, bin / java am Ende des Pfads zu entfernen, während Sie es in JAVA_HOME einfügen

Andrew Onischuk
quelle
Okay, ich habe getan, was Sie gesagt haben, aber es liefert die gleichen Ergebnisse, außer dass sich der Pfad geändert hat.
Joseph_carp
1
Wenn Sie $JAVA_HOME/bin/java -versionnach dem Export ausgeführt werden, funktioniert es einwandfrei, wenn Sie die Java-Version anzeigen?
Andrew Onischuk
$ JAVA_HOME / bin / java -version liefert bash: /usr/local/java/jdk1.8.0_20/bin/java: Keine solche Datei oder kein solches Verzeichnis
Joseph_carp
2
Ihr Export scheint falsch zu sein. Bitte zeigen Sie den verwendeten Exportbefehl an. Und zeigen Sie auch die readlink -f $(which java)Ausgabe
Andrew Onischuk
5
Sie sollten es auf den Ordner setzen, in dem bin / java export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"nicht bedeutetexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Andrew Onischuk
13

Um es unter Linux / Ubuntu automatisch zu machen, fügen Sie diese Zeilen am Ende Ihres .bashrc:

JAVA_HOME=$(dirname $( readlink -f $(which java) ))
JAVA_HOME=$(realpath "$JAVA_HOME"/../)
export JAVA_HOME

Dadurch wird Java ausführbar und steigt dann auf eine Verzeichnisebene auf

Führen Sie dies einmal aus , um die Standard-Java-Version / ausführbare Datei unter Debian / Ubuntu festzulegen :

sudo update-alternatives --config java

Dies baut auf der vorherigen Antwort von Andrew Onischuk auf (danke!)

Tudor Ilisoi
quelle
Seine Arbeit wie ein Zauber. Es löste mein Problem nach 3 Tagen.
Hitesh Sarsava
1

Holen Sie sich Ihren Java-Pfad mit dem Befehl

whereis java

Das Folgende ist eine mögliche Ausgabe in Abhängigkeit von Ihrer Standard-Java-Version

java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk1.8.0_241/jre/bin/java

Maven muss den Java-Speicherort (Home) auswählen, damit Sie den Java-Pfad mit dem folgenden Befehl exportieren können

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre

Dadurch kann Maven die Java-Version und den Speicherort in der Datei / etc / environment auswählen

Optional können Sie dies mit dem folgenden Befehl manuell in der / etc / -Umgebung hinzufügen

sudo nano /etc/environment

und bearbeiten Sie die JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Jose Mhlanga
quelle
0

Versuchen Sie, / usr / bin / gradle zu bearbeiten

Kommentieren Sie die Zeile "exportiere JAVA_HOME = / usr / lib / jvm / default-java" mit einem #

dies: #export JAVA_HOME = / usr / lib / jvm / default-java

Starwatcher
quelle