it-swarm.com.de

Wie setze ich Oracle Java als Standard Java in Ubuntu?

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?

130
Ashish Agarwal

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.

172
srkiNZ84

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
165
metdos

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.

49
Barracuda

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.

19
Jits

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

12

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::")
10
user987339

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 .

7
prosseek

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.

4
WillC