Wie ändere ich den Wert von Java_HOME
in Ubuntu auf Oracle Java verweisen?
Sollte es auf Java-6-Sun
oder Java-6-Sun-1.6.0.24
?
Ich habe die Zeile gesetzt:
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
in meiner ~/.bashrc
Datei.
/usr/lib/jvm/Java7-Oracle
Sollte ein symbolischer Link sein, der auf /usr/lib/jvm/Java-7-Oracle-[version number here]
Verweist.
Der Grund für die symbolische Verknüpfung ist, dass bei einer neuen Version der JVM die Datei .bashrc
Nicht aktualisiert werden muss. Sie sollte automatisch auf die neue Version verweisen.
Wenn Sie Java_HOME-Umgebungsvariablen global und auf Systemebene festlegen möchten, muss die Verwendung in der Datei / etc/environment festgelegt werden.
Wenn Sie es global und auf Systemebene ändern möchten;
Im
/etc/environment
füge diese Zeile hinzu:
Java_HOME=/usr/lib/jvm/Java-7-Oracle
um das Java SE Development Kit von Oracle als Systemstandard festzulegen Java laden Sie einfach das neueste Java SE Development Kit von - hier dann erstellen Sie ein Verzeichnis an einer beliebigen Stelle in Ihrem Dateisystem, zum Beispiel /usr/Java
extrahieren Sie nun die Dateien, die Sie gerade in dieses Verzeichnis heruntergeladen haben:
$ Sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/Java
nun setzen Sie Ihr Java_HOME
Umgebungsvariable:
$ Java_HOME=/usr/Java/jdk1.8.0_05/
$ Sudo update-alternatives --install /usr/bin/Java java ${Java_HOME%*/}/bin/Java 20000
$ Sudo update-alternatives --install /usr/bin/javac javac ${Java_HOME%*/}/bin/javac 20000
stellen Sie sicher, dass das Java als Standard Java von:
$ update-alternatives --config Java
du bekommst so etwas:
There are 2 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/Java/jdk1.8.0_05/bin/Java 20000 auto mode
1 /opt/Java/jdk1.8.0_05/bin/Java 20000 manual mode
2 /usr/lib/jvm/Java-6-openjdk-i386/jre/bin/Java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
achten Sie auf das Sternchen vor den Zahlen auf der linken Seite. Wenn das richtige nicht eingestellt ist, wählen Sie das richtige aus, indem Sie die Nummer eingeben und die Eingabetaste drücken. Testen Sie jetzt Ihr Java:
$ Java -version
wenn Sie etwas wie das Folgende bekommen, können Sie loslegen:
Java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
beachten Sie auch, dass Sie möglicherweise eine Root-Berechtigung benötigen oder sich in der Gruppe sudoers befinden, um dies zu tun. Ich habe diese Lösung auf Ubuntu 12.04 und Debian Wheezy getestet und sie funktioniert in beiden.
Wenn Sie möchten, dass diese Umgebungsvariable allen Benutzern und beim Systemstart zur Verfügung steht, können Sie Folgendes zu / etc/profile.d/Java.sh (erstellen Sie sie bei Bedarf) hinzufügen:
export JDK_HOME=/usr/lib/jvm/Java-7-Oracle
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
Dann in einem Terminallauf:
Sudo chmod +x /etc/profile.d/Java.sh
source /etc/profile.d/Java.sh
Meine zweite Frage ist - sollte sie auf Java-6-Sun oder Java-6-Sun-1.6.0.24 verweisen?
Es sollte immer auf Java-7-Oracle
Verweisen, da dieses Symbol auf das zuletzt installierte verweist (vorausgesetzt, Sie haben Java aus den Ubuntu-Repositorys und jetzt aus dem auf Oracle.com verfügbaren Download) installiert.
Java 6
export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk-AMD64
oder Java 7
export Java_HOME=/usr/lib/jvm/Java-1.7.0-openjdk-AMD64
Wenn Sie irgendeine Art von Entwicklung durchführen, müssen Sie auf das JDK (Java Development Kit) verweisen. Andernfalls können Sie auf die JRE (Java Runtime Environment) verweisen.
Das JDK enthält alles, was das JRE hat und mehr. Wenn Sie nur Java Programme ausführen, können Sie entweder auf die JRE oder das JDK verweisen.
Sie sollten Java_HOME
Basierend auf dem aktuellen Java) einstellen. readlink
gibt den Wert eines symbolischen Links für den aktuellen Java) aus = und sed
passen es an das JRE-Verzeichnis an:
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
Wenn Sie Java_HOME für JDK einrichten möchten, sollten Sie einen Ordner mehr öffnen:
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
Wenn Sie eine bestimmte Version von Java verwenden möchten, wenn mehrere JDKs installiert sind, funktioniert es möglicherweise nicht, nur Java_HOME festzulegen.
Sie müssen Sudo update-alternatives --config Java
, um Java als Standard festzulegen.
Siehe https://askubuntu.com/questions/121654/how-to-set-default-Java-version .
Siehe this ; Lauf
Sudo update-Java-alternatives --list
um alle Java) - Installationen auf einem Computer nach Name und Verzeichnis aufzulisten und dann auszuführen
Sudo update-Java-alternatives --set [JDK/JRE name e.g. Java-8-Oracle]
um auszuwählen, welches JRE/JDK verwendet werden soll.
Wenn Sie für jede Java Task unterschiedliche JDKs/JREs verwenden möchten, können Sie Update-Alternativen ausführen, um jeweils eine Java ausführbare Datei zu konfigurieren; Sie können ausführen
Sudo update-alternatives --config Java[Tab]
um zu sehen, welche Java Befehle konfiguriert werden können (Java, javac, javah, javaws, etc). Und dann
Sudo update-alternatives --config [javac|Java|javadoc|etc.]
ordnet diese Java task/command einem bestimmten JDK/JRE zu.
Möglicherweise müssen Sie auch Java_HOME für einige Anwendungen festlegen: Von diese Antwort können Sie verwenden
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
für JREs oder
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
für JDKs.