Note : J'utilise OpenJDK comme JRE, vu que les paquets java-sun ont été retirés des dépôts Debian. De plus, j'utilise la version 7 d'OpenJDK mais les mêmes manipulations fonctionnent pour la version 6.
C'est en soit assez simple sur un système n'ayant jamais eu de Java installé auparavant, puisqu'il suffit d'installer OpenJDK pour le JRE ainsi qu'IcedTea, qui est le plugin utilisable par Chromium et Iceweasel.
Et voilà, c'est tout !
Sur un système ayant eu plusieurs Java d'installés, en revanche, les résidus des précédentes versions peuvent gêner. En effet, Debian utilise un système nommé alternatives. Si vous ne savez pas de quoi il s'agit, jetons un œil dans ce bon vieux man :
Il est possible d'installer, sur un même système et en même temps, des programmes
qui remplissent des fonctions identiques ou semblables. Par exemple, beaucoup de
systèmes installent plusieurs éditeurs de texte en même temps. Cela permet à
chaque utilisateur d'un système de choisir, s'il le désire, un éditeur de texte
différent ; mais cela rend les choses difficiles pour le programme qui doit choi‐
sir un bon éditeur de texte quand l'utilisateur n'a pas fait de choix précis.Le système Debian des « alternatives » essaie de résoudre ce problème. Tous les
fichiers qui proposent des fonctions interchangeables se servent d'un nom géné‐
rique qui se trouve dans l'arborescence. Le système des « alternatives » et
l'administrateur système font connaître ensemble le fichier qui est réellement
visé par ce nom générique. Par exemple, si les éditeurs de texte ed(1) et nvi(1)
sont tous les deux installés, le système des « alternatives » fait que le nom
générique /usr/bin/editor renvoie par défaut à /usr/bin/nvi. L'administrateur sys‐
tème peut remplacer cette assignation par /usr/bin/ed et le système des « alterna‐
tives » ne la changera pas tant qu'on ne lui aura pas demandé explicitement de le
faire.
La problématique est la même pour Java : vous pouviez utiliser le java-sun, openjdk ou gij par exemple. Or, après l'installation d'OpenJDK et d'IcedTea, voici ce que donnent les fichiers d'alternatives :
lrwxrwxrwx 1 root root 64 avril 28 12:54 firefox-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx 1 root root 64 avril 28 12:54 iceweasel-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx 1 root root 55 déc. 3 17:37 itweb-settings -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/itweb-settings
lrwxrwxrwx 1 root root 65 déc. 3 17:37 itweb-settings.1.gz -> /usr/lib/jvm/java-6-openjdk-i386/jre/man/man1/itweb-settings.1.gz
lrwxrwxrwx 1 root root 45 mai 14 16:36 java -> /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
lrwxrwxrwx 1 root root 55 mai 14 16:36 java.1.gz -> /usr/lib/jvm/java-7-openjdk-i386/jre/man/man1/java.1.gz
lrwxrwxrwx 1 root root 46 mai 14 16:36 jexec -> /usr/lib/jvm/java-7-openjdk-i386/jre/lib/jexec
lrwxrwxrwx 1 root root 64 avril 28 12:54 mozilla-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx 1 root root 54 janv. 8 2010 pluginappletviewer -> /usr/lib/jvm/java-6-openjdk/jre/bin/pluginappletviewer
lrwxrwxrwx 1 root root 64 avril 28 12:54 xulrunner-1.9-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx 1 root root 64 avril 28 12:54 xulrunner-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
Vous voyez qu'il s'agit en fait de liens symboliques pointant en général vers des exécutables. Dans mon cas, certains liens pointent encore vers la JVM java-sun ou vers openjdk-6 alors que j'ai installé tout à l'heure la version 7.
Faisons donc un peu de ménage :
La commande va parser tout le dossier /etc/alternatives et proposer à chaque fois les alternatives possibles. Vous devrez à chaque fois sélectionner la version provenant de l'OpenJDK 7.
Voici compilation de mes choix concernant Java :
Il existe 2 choix pour l'alternative itweb-settings (qui fournit /usr/bin/itweb-settings).
Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/itweb-settings 1061 mode automatique
1 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/itweb-settings 1061 mode manuel
2 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/itweb-settings 1060 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :2
update-alternatives: utilisation de « /usr/lib/jvm/java-7-openjdk-i386/jre/bin/itweb-settings » pour fournir « /usr/bin/itweb-settings » (itweb-settings) en mode manuel.
Il n'existe qu'une « alternative » dans le groupe de liens jar : /usr/bin/fastjar.
Rien à configurer.
Il existe 3 choix pour l'alternative java (qui fournit /usr/bin/java).
Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 mode automatique
1 /usr/bin/gij-4.4 1044 mode manuel
2 /usr/bin/gij-4.6 1046 mode manuel
3 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
Il existe 2 choix pour l'alternative javaws (qui fournit /usr/bin/javaws).
Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/javaws 1061 mode automatique
1 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/javaws 1061 mode manuel
2 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/javaws 1060 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :2
update-alternatives: utilisation de « /usr/lib/jvm/java-7-openjdk-i386/jre/bin/javaws » pour fournir « /usr/bin/javaws » (javaws) en mode manuel.
Il n'existe qu'une « alternative » dans le groupe de liens jexec : /usr/lib/jvm/java-7-openjdk-i386/jre/lib/jexec.
Rien à configurer.
Il n'existe qu'une « alternative » dans le groupe de liens mozilla-javaplugin.so : /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so.
Rien à configurer.
Il n'existe qu'une « alternative » dans le groupe de liens pack200 : /usr/lib/jvm/java-7-openjdk-i386/jre/bin/pack200.
Rien à configurer.
Et voilà. À vous le Java sur Chrome et Iceweasel (et probablement tous les navigateurs supportant les plugins Mozilla ou NPAPI). Vous pouvez vérifier si le plugin est activé en allant sur chrome://plugins/ (Chromium) ou about:plugins (Iceweasel).
Il ne reste plus qu'à vérifier si le plugin fonctionne sur http://www.java.com/en/download/testjava.jsp

