Wie finde ich mein aktuelles JAVA_HOME in Ubuntu? Ich muss den Pfad java_home festlegen, wenn ich maven installiere.
Wie finde ich mein aktuelles JAVA_HOME in Ubuntu? Ich muss den Pfad java_home festlegen, wenn ich maven installiere.
Antworten:
Geben Sie das Terminal ein,
echo $JAVA_HOME
JAVA_HOME-Variablenpfad anzeigen.
WENN NICHTS ERSCHEINT, STELLEN SIE ES MIT DIESEM EIN
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Dies ist je nach JDK-Typ und -Version unterschiedlich
Befolgen Sie zum Anzeigen den ersten Befehl.
Befolgen Sie diesen Beitrag, um verschiedene JDKs zu verwenden oder zwischen JDKs zu wechseln
JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
Wenn Sie JDK 1.6 (entsprechend Java 6) oder eine neuere Version installiert haben, sollten Sie ein Programm mit dem Namen jrunscript
in Ihrem haben PATH
. Sie können dies verwenden, um die entsprechenden zu finden JAVA_HOME
. Beispiel:
$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre
Sie können die Umgebungsvariable folgendermaßen festlegen:
$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
Beachten Sie, dass die JRE nicht enthalten jrunscript
ist. Dies funktioniert also nur, wenn Sie das JDK und nicht nur die JRE installieren.
Eine weitere tragbare Option besteht darin, den absoluten Pfad des JDK zu extrahieren aus javac
:
export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`
Der absolute javac
Pfad wird dirname
zweimal übergeben, um ihn /bin/javac
vom Ende zu entfernen . Die vollständige Extraktion des Verzeichnisses erfolgt wie folgt:
$ type -p javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac
$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/
$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
type -p javac|xargs readlink -f|xargs dirname|xargs dirname
(ohne den Exportteil) das Verzeichnis kennen, ohne es zu setzen.
So berücksichtigen Sie den Mechanismus für Aktualisierungsalternativen:
$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'
Sie können die Umgebungsvariable folgendermaßen festlegen:
$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
/jre
. Sie könnten versuchenexport JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
Führen Sie einfach einen Befehl aus
sudo update-alternatives --config java
Es wird sowas geben
Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java
Daraus haben Sie / usr / lib / jvm / java-8-oracle / als Java-Startseite. Sie können es jetzt in die Variable JAVA_HOME exportieren
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
Jetzt echo $ JAVA_HOME show it
Legen Sie Java-Umgebungsvariablen fest
Die PPA enthält auch ein Paket zum automatischen Setzen von Java-Umgebungsvariablen. Führen Sie einfach den folgenden Befehl aus:
sudo apt install oracle-java8-set-default
Von diesem Artikel: Installieren Sie Oracle Java 8/9 in Ubuntu 16.04, Linux Mint 18
Für Java 9 und höher:
Diese Antwort https://askubuntu.com/a/657468/963 verwendet die beiliegende Nashorn-JavaScript-Engine Nashorn, um die java.home
Systemeigenschaft auszudrucken . Nashorn ist veraltet, eine Alternative ist jshell
die in Java 9 eingeführte.
echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell -
was auf meinem Ubuntu 18.10 System druckt:
/usr/lib/jvm/java-11-openjdk-amd64