Installez plusieurs Javas et basculez entre eux sur Ubuntu

manière

Recherchez Java à installer

$ 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)

Installation de Java

installation de java8

$ sudo apt install openjdk-8-jdk

installation de java9

$ sudo apt install openjdk-9-jdk

Vérifier la version java

$ 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)

À propos des alternatives de mise à jour (avant de changer)

--java sous / usr / bin est un lien symbolique et pointe vers java sous / etc / alternatives. --java sous / etc / alternatives est également un lien symbolique, et dans l'exemple ci-dessous, il pointe vers java dans / usr / lib / jvm / java-8-openjdk-amd64 / jre / bin. --update-alternatives peut pointer vers différentes versions de java en réécrivant les liens symboliques sous / etc / alternatives. (Les alternatives de mise à jour peuvent être utilisées en plus de java)

$ 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

Changer de java

Je vais énumérer trois méthodes que j'ai essayées, mais je recommande personnellement la méthode 3.

(Méthode 1) Basculer avec des alternatives de mise à jour (* La commutation est à mi-chemin)

--Le Java installé est affiché par la commande update-alternatives, spécifiez donc le numéro de sélection à changer.

$ 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

--Si vous obtenez le message suivant, update-alternatives ne reconnaît que java8, vous devez donc enregistrer java9.

$ 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.
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)

――Mais si vous regardez le lien symbolique dans / etc / alternatives, vous pouvez voir que seule la commande java est commutée. .. .. Puisque update-alternatives n'est pas une commande uniquement Java, c'est naturel. (En fait, il y a beaucoup plus de commandes liées à Java dans / etc / alternatives.)

$ 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

(Méthode 2) Utilisez update-java-alternatives (* La commutation est à mi-chemin)

--Utilisez update-java-alternatives, une commande de commutation dédiée à java. Cependant, il est également nécessaire d'enregistrer chaque version java du côté des alternatives de mise à jour. (Parce que update-alternatives est utilisé dans update-java-alternatives.) --Enregistrez la commande décrite dans jinfo dans update-alternatives avec une seule ligne

$ 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-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

En fin de compte, même update-java-alternatives ne change pas tout. .. ..

$ 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

(Méthode 3) Basculer avec des alternatives de mise à jour -Partie 2- (* Recommandé)

――En fin de compte, n'y a-t-il pas d'autre choix que de basculer toutes les commandes liées à Java en utilisant des alternatives de mise à jour? .. .. --L'enregistrement à update-alternatives est le même que la procédure effectuée dans la partie 2.

$ 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 commandes liées à Java dans des alternatives avec une seule doublure

$ cat .java-1.9.0-openjdk-amd64.jinfo | grep -v -e '=' -e '^$' | awk '{system("sudo update-alternatives --set " $2 " " $3 )}'

--Confirmez que toutes les commandes liées à Java ont été commutées.

$ 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

Remarques

―― Aucune des méthodes ci-dessus ne changera JAVA_HOME, vous devez donc changer individuellement. --Bien que cela soit décrit dans jinfo, certains fichiers n'existent pas réellement. Dans ce cas, ʻupdate-alternatives: error: alternative path / usr / lib / jvm / java-9-openjdk-amd64 / bin / appletviewer doesn ' Une erreur telle que t exist` se produira, mais il ne semble y avoir aucun problème particulier.

Recommended Posts

Installez plusieurs Javas et basculez entre eux sur Ubuntu
Installez JDK et JRE sur Ubuntu 16.10
Basculez entre GUI et CUI sur CentOS6.
Construire et installer la version de développement Wireshark (3.3.1) sur Ubuntu
Installez pyqt5 sur ubuntu
Installez Ruby sur Ubuntu 20.04
Basculer entre plusieurs versions de Java sur Mac
Basculer entre JDK 7 et JDK 8
Comment installer plusieurs JDK sur Ubuntu 18.04 LTS
Installez rbenv avec apt sur ubuntu et mettez ruby
Installez OpenJDK7 (JAVA) sur ubuntu 14.04
Installez Docker sur Ubuntu Server 20.04
Installez l'agent zabbix (5.0) sur Ubuntu 18.04
Installation du proxy MAV sur Ubuntu 18.04
Installez Java sur WSL Ubuntu 18.04
Installez Ubuntu Desktop 20.10 sur RaspberryPi4
Différence entre l'installation de bundle et de bundle
Installez WordPress 5.5 sur Ubuntu 20.04 LTS
Installez Ubuntu Server 20.04 sur Btrfs
Remarque: installez PostgreSQL 9.5 sur Ubuntu 18.04
Installez docker et docker-compose sur ubuntu dans les plus brefs délais
Installez AWS IoT Greengrass sur Ubuntu
Installer et configurer jenv sur macOS
Activer les SDK Java 8 et Java 11 sur Ubuntu
Installez SonarQube sur l'instance ECS sur Ubuntu 16.04
Installez ruby sur Ubuntu 20.04 avec rbenv
Installez Java 9 sur Windows 10 et CentOS 7
Comment installer et utiliser Composer sur une instance ECS sur Ubuntu 16.04
Comment installer et configurer l'outil de surveillance "Graphite" sur Ubuntu
Installez Ubuntu20.04 sur RaspberryPi 4 et compilez Kubernetes pour exécuter le conteneur
Installez Ubuntu Server 20.04 dans VirtualBox sur Mac et établissez une connexion SSH
Installez Docker sur Ubuntu et configurez la connexion à distance à l'aide de tls
Mettre à niveau et changer de version de Ruby sous Windows 10
Installez docker et docker-compose sur Alpine Linux
[Remarque] Différence entre l'installation et la mise à jour du bundle
Installation sans tête d'Ubuntu 20.10 sur Raspberry Pi
Installez OpenJDK (Java) sur le dernier Ubuntu
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Remarques sur l'API Stream et SQL de Java
Comment basculer entre plusieurs versions de Java
Paramètres Wine sur Ubuntu 18.04 (installer l'éditeur WOLF RPG)
Publication externe et connexion de MySQL sur Ubuntu
Installez Docker sur Raspberry Pi 4 et Raspberry Pi OS 64 bits
Comment installer les pilotes réseau sur Ubuntu autonome
Installez SonarQube sur Mac et testez l'analyse des sources
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode