Comment utiliser la commande update-alternatives –config java

J’installe Apache Solr sur Linux Debian (Squeeze). J’ai été chargé d’installer sun-java jdk 1st. On me dit alors que je devrais utiliser la commande sudo update-alternatives --config java pour m’assurer qu’un java (sun-java) est le runtime par défaut. Pourtant, quand je lance cette commande, je reçois:

 There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/bin/gij-4.4 1044 manual mode 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode Press enter to keep the current choice[*], or type selection number: 

Alors, quel numéro dois-je choisir pour que sun-java soit le runtime par défaut? Aussi, que signifient exactement les modes auto et manuel? Si je sélectionne 3 ci-dessus et que je lance la commande update-alternative, je reçois la même sortie que ci-dessus, encore une fois rien ne semble avoir changé sauf que le * est maintenant devant le 3, mais il lit toujours le mode manuel.

Est-il possible de confirmer que ce que j’ai fait est correct?

Vous remarquerez un grand changement lors de la sélection des options si vous tapez “java -version” après l’avoir fait. Donc, si vous exécutez update-alternatives --config java et sélectionnez l’option 3 , vous utiliserez l’implémentation Sun.
En outre, en ce qui concerne manual mode auto vs manual mode , faire une sélection devrait le sortir du auto mode pour cette page en indiquant:

Lorsque vous utilisez l’option --config , les alternatives --config tous les choix pour le groupe de liens dont le nom est le lien principal. Vous serez alors invité à choisir les options à utiliser pour le groupe de liens. Une fois le changement effectué, le groupe de liens ne sera plus en auto mode . Vous devrez utiliser l’option --auto pour revenir à l’état automatique.

Et je crois que auto mode est défini lorsque vous installez le premier / seul JRE / JDK.

update-alternatives est problématique dans ce cas car il vous oblige à mettre à jour tous les éléments en fonction du JDK.

À cette fin spécifique, le package java-common contient un outil appelé update-java-alternatives .

Il est facile de l’utiliser. Première liste des installations JDK disponibles sur votre machine:

 root@mylaptop:~# update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64 

Et puis en prendre un:

 root@mylaptop:~# update-java-alternatives -s java-1.7.0-openjdk-amd64 

Il y a beaucoup d’autres binarys qui doivent être liés, donc je pense qu’il est préférable d’essayer quelque chose comme sudo update-alternatives --all et de choisir les bonnes alternatives pour tout le rest à part java et javac .

En supposant que l’on a installé un JDK dans /opt/java/jdk1.8.0_144 alors:

  1. Installer l’alternative pour javac

     $ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1 
  2. Vérifiez / mettez à jour la configuration alternative:

     $ sudo update-alternatives --config javac 

S’il n’y a qu’une seule alternative pour javac vous recevrez un message le indiquant, sinon sélectionnez l’option pour le nouveau JDK.

Pour vérifier que tout est configuré correctement, alors:

 $ which javac /usr/bin/javac $ ls -l /usr/bin/javac lrwxrwxrwx 1 root root 23 Sep 4 17:10 /usr/bin/javac -> /etc/alternatives/javac $ ls -l /etc/alternatives/javac lrwxrwxrwx 1 root root 32 Sep 4 17:10 /etc/alternatives/javac -> /opt/java/jdk1.8.0_144/bin/javac 

et enfin

 $ javac -version javac 1.8.0_144 

Répétez l’opération pour Java, keytool, jar, etc.

Jetez un oeil à https://wiki.debian.org/JavaPackage Au bas de cette page, une autre méthode est décrite en utilisant une commande du paquet java-common