Installieren Sie mehrere Javas und wechseln Sie unter Ubuntu zwischen ihnen

Weise

Suchen Sie nach Java zum Installieren

$ sudo apt search openjdk-.*-jdk$

openjdk-8-jdk/xenial-updates,xenial-security 8u252-b09-1~16.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-9-jdk/xenial 9~b114-0ubuntu1 amd64
  OpenJDK Development Kit (JDK)

Java-Installation

Installation von Java8

$ sudo apt install openjdk-8-jdk

Installation von Java9

$ sudo apt install openjdk-9-jdk

Überprüfen Sie die Java-Version

$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

Über Update-Alternativen (vor dem Wechsel)

--java unter / usr / bin ist ein symbolischer Link und verweist auf Java unter / etc / alternatives. --java unter / etc / alternatives ist ebenfalls ein symbolischer Link und zeigt im folgenden Beispiel auf Java in / usr / lib / jvm / java-8-openjdk-amd64 / jre / bin. --update-alternatives kann auf verschiedene Versionen von Java verweisen, indem die symbolischen Links unter / etc / alternatives neu geschrieben werden. (Update-Alternativen können zusätzlich zu Java verwendet werden)

$ which java
/usr/bin/java

$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 May  5 01:46 /usr/bin/java -> /etc/alternatives/java

$ ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 46 May  5 07:52 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Java wechseln

Ich werde drei Methoden auflisten, die ich ausprobiert habe, aber ich persönlich empfehle Methode 3.

(Methode 1) Wechseln Sie mit Update-Alternativen (* Umschalten ist auf halbem Weg)

--Das installierte Java wird mit dem Befehl update-alternatives angezeigt. Geben Sie daher die zu wechselnde Auswahlnummer an.

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   10        auto mode
* 1            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   10        manual mode
  2            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       10        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
$ sudo update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.

--Nachdem Sie den folgenden Registrierungsbefehl ausgeführt haben, wechseln Sie erneut. (Die letzte Nummer hat Priorität.)

sudo update-alternatives --verbose --install /usr/bin/java java /usr/lib/jvm/java-9-openjdk-amd64/jre/bin/java 10
$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

――Aber wenn Sie sich den symbolischen Link in / etc / alternatives ansehen, können Sie sehen, dass nur der Java-Befehl umgeschaltet wird. .. .. Da Update-Alternativen kein Nur-Java-Befehl ist, ist dies natürlich. (Tatsächlich gibt es in / etc / alternatives viel mehr Java-bezogene Befehle.)

$ ls -ltr /etc/alternatives/java*
lrwxrwxrwx 1 root root 45 May  5 08:03 /etc/alternatives/javadoc -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javah -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javap -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javap
lrwxrwxrwx 1 root root 42 May  5 08:04 /etc/alternatives/java -> /usr/lib/jvm/java-9-openjdk-amd64/bin/java

(Methode 2) Verwenden Sie Update-Java-Alternativen (* Umschaltung ist auf halbem Weg)

--Verwenden Sie update-java-alternatives, einen Schaltbefehl für Java.

$ cd /usr/lib/jvm
$ cat .java-1.9.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --verbose --install /usr/bin/" $2 " "$2 " " $3 " " 10)}'

--Versuchen Sie, Java anzuzeigen, das umgeschaltet werden kann.

$ update-java-alternatives --list
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-1.9.0-openjdk-amd64       1091       /usr/lib/jvm/java-1.9.0-openjdk-amd64
$ sudo update-java-alternatives --set java-1.9.0-openjdk-amd64

――Im Ende wechseln selbst Update-Java-Alternativen nicht alles. .. ..

$ ls -ltr /etc/alternatives/java*
lrwxrwxrwx 1 root root 45 May  5 08:03 /etc/alternatives/javadoc -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javah -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
lrwxrwxrwx 1 root root 43 May  5 08:03 /etc/alternatives/javap -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javap
lrwxrwxrwx 1 root root 42 May  5 08:24 /etc/alternatives/java -> /usr/lib/jvm/java-9-openjdk-amd64/bin/java

(Methode 3) Wechseln Sie mit Update-Alternativen -Teil 2- (* Empfohlen)

―― Gibt es am Ende keine andere Wahl, als alle Java-bezogenen Befehle mithilfe von Update-Alternativen zu wechseln? .. ..

$ cd /usr/lib/jvm
$ cat .java-1.9.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --verbose --install /usr/bin/" $2 " "$2 " " $3 " " 10)}'

--update-Switch Java-bezogene Befehle in Alternativen mit einem Liner

$ cat .java-1.9.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --set " $2 " " $3 )}'
$ ls -ltr /etc/alternatives/java*
lrwxrwxrwx 1 root root 42 May  5 08:24 /etc/alternatives/java -> /usr/lib/jvm/java-9-openjdk-amd64/bin/java
lrwxrwxrwx 1 root root 43 May  5 08:42 /etc/alternatives/javac -> /usr/lib/jvm/java-9-openjdk-amd64/bin/javac
lrwxrwxrwx 1 root root 43 May  5 08:42 /etc/alternatives/javah -> /usr/lib/jvm/java-9-openjdk-amd64/bin/javah
lrwxrwxrwx 1 root root 45 May  5 08:42 /etc/alternatives/javadoc -> /usr/lib/jvm/java-9-openjdk-amd64/bin/javadoc
lrwxrwxrwx 1 root root 43 May  5 08:42 /etc/alternatives/javap -> /usr/lib/jvm/java-9-openjdk-amd64/bin/javap

Bemerkungen

―― Keine der oben genannten Methoden wechselt JAVA_HOME, daher müssen Sie einzeln wechseln.

Recommended Posts

Installieren Sie mehrere Javas und wechseln Sie unter Ubuntu zwischen ihnen
Installieren Sie JDK und JRE unter Ubuntu 16.10
Wechseln Sie unter CentOS6 zwischen GUI und CUI.
Erstellen und installieren Sie Wireshark Development Release (3.3.1) unter Ubuntu
Installieren Sie pyqt5 auf Ubuntu
Installieren Sie Ruby unter Ubuntu 20.04
Wechseln Sie zwischen mehreren Java-Versionen auf dem Mac
Wechseln Sie zwischen JDK 7 und JDK 8
So installieren Sie mehrere JDKs unter Ubuntu 18.04 LTS
Installieren Sie rbenv mit apt auf Ubuntu und setzen Sie Ruby
Installieren Sie OpenJDK7 (JAVA) unter Ubuntu 14.04
Installieren Sie Docker unter Ubuntu Server 20.04
Installieren Sie den zabbix agent (5.0) unter Ubuntu 18.04
Installieren von MAV Proxy unter Ubuntu 18.04
Installieren Sie Java unter WSL Ubuntu 18.04
Installieren Sie Ubuntu Desktop 20.10 auf RaspberryPi4
Unterschied zwischen Bundle und Bundle-Installation
Installieren Sie WordPress 5.5 unter Ubuntu 20.04 LTS
Installieren Sie Ubuntu Server 20.04 auf Btrfs
Hinweis: Installieren Sie PostgreSQL 9.5 unter Ubuntu 18.04
Installieren Sie Docker und Docker-Compose in kürzester Zeit auf Ubuntu
Installieren Sie AWS IoT Greengrass unter Ubuntu
Installieren und konfigurieren Sie jenv unter macOS
Aktivieren Sie Java 8- und Java 11-SDKs unter Ubuntu
Installieren Sie SonarQube auf der ECS-Instanz unter Ubuntu 16.04
Installieren Sie Ruby unter Ubuntu 20.04 mit rbenv
Installieren Sie Java 9 unter Windows 10 und CentOS 7
So installieren und verwenden Sie Composer auf einer ECS-Instanz unter Ubuntu 16.04
So installieren und konfigurieren Sie das Überwachungstool "Graphite" unter Ubuntu
Installieren Sie Ubuntu20.04 auf RaspberryPi 4 und erstellen Sie Kubernetes, um den Container auszuführen
Installieren Sie Ubuntu Server 20.04 in VirtualBox auf einem Mac und stellen Sie eine SSH-Verbindung her
Installieren Sie Docker unter Ubuntu und richten Sie die Remoteverbindung mit tls ein
Aktualisieren und wechseln Sie Ruby-Versionen unter Windows 10
Installieren Sie Docker und Docker-Compose unter Alpine Linux
[Hinweis] Unterschied zwischen Bundle-Installation und -Update
Headless Installation von Ubuntu 20.10 auf Raspberry Pi
Installieren Sie OpenJDK (Java) auf dem neuesten Ubuntu
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Hinweise zur Stream-API und zu SQL von Java
So wechseln Sie zwischen mehreren Java-Versionen
Weineinstellungen unter Ubuntu 18.04 (WOLF RPG Editor installieren)
Externe Veröffentlichung und Anmeldung von MySQL unter Ubuntu
Installieren Sie Docker auf Raspberry Pi 4 und Raspberry Pi OS 64bit
So installieren Sie Netzwerktreiber unter eigenständigem Ubuntu
Installieren Sie SonarQube auf einem Mac und fordern Sie die Quellanalyse heraus
Installationsanweisungen für Docker unter Ubuntu18.04 unter WSL2 und VSCode