Introduction

Cet article présente une façon d'installer la dernière machine virtuelle JAVA (ou “JVM”), utile à de nombreux autres logiciels de la plupart des distributions. La procédure présentée dans cet article a été testée avec succès avec les distributions Mandriva 2007 et Debian Sarge 3.1, et nul doute que le lecteur attentif saura adapter les manips à une autre distribution de son choix.

Par défaut, la JVM installée par une distribution est rarement la dernière, et par ailleurs l'installeur proposé par SUN (la société à l'origine de JAVA) ne crée pas tous les liens nécessaires à l'utilisation correcte de ce logiciel. Donc sauf exception, l'utilisateur qui voudra pleinement profiter des dernières nouveautés de Java devra mettre la main à la pâte pour les installer.

La JVM se décline en 2 versions, JRE (Java Runtime Environment) et JDK (Java Development Kit). Le JDK est un sur-ensemble du JRE, avec en plus certains outils comme un compilateur permettant d'écrire soi-même des applications en Java. On se contentera ici du JRE, sachant que pour installer un JDK les manips seraient analogues, le JRE étant alors contenu dans un sous-dossier “JRE” du JDK.

Article rédigé par Jeanmm ;-)
Version initiale : 26/12/2006.

Compléments Debian : 29/12/2006. Compléments Firefox/Mandriva : 24/6/2007.

Téléchargement

On commencera par télécharger le dernier JRE chez SUN. Je n'ai jamais compris comment atterrir directement sur la bonne page de téléchargements, aussi faut-il commencer par jouer au chat et à la souris; je propose en gros :

  • afficher la page http://java.sun.com/
  • en haut on devrait trouver une rubrique “Downloads”; dérouler la liste puis cliquer sur le lien “Java SE”,
  • descendre jusqu'à “Java Runtime Environment (JRE) 6” puis cliquer sur le bouton “Download” (noter qu'on pourra avoir autre chose que le 6, les versions évoluent rapidement),
  • en haut de la liste cocher le choix “Accept License Agreement”, puis cliquer sur “Linux self-extracting file”,
  • télécharger le fichier, par exemple ici à la date de rédaction : jre-6-linux-i586.bin.

La version obtenue ainsi est en principe la toute dernière.

Installation

Attention : Pour ceux qui n'ont pas l'habitude de passer des commandes telles que celles expliquées ci-dessous, il est vivement recommandé de chercher à se familiariser au préalable, et notamment d'utiliser le copier/coller pour éviter les erreurs (certaines erreurs funestes sur le path par exemple peuvent tout simplement empêcher de rebooter son pc!). En linux, on copie un texte simplement en le sélectionnant avec le bouton gauche de la souris, et on le colle avec le bouton du milieu (ou les 2 boutons gauche-droite en même temps si on a une souris sans bouton du milieu).

Bon, supposons qu'on dispose donc du fichier jre-6-linux-i586.bin. On ouvre une console root et on se place dans le dossier qui contient ce fichier. Voici alors les manips à taper :

chmod +x jre-6-linux-i586.bin
./jre-6-linux-i586.bin

Là il faut encore une fois valider une licence ! Appuyer plusieurs fois la barre d'espaces puis taper “yes”. Il en résulte la création d'un dossier dont le nom nous renseigne sur le numéro de version, par exemple : jre1.6.0. On note bien ce numéro car on va s'en reservir plusieurs fois; évidemment s'il y a un autre numéro créé on adaptera toutes les commandes ci-dessous en conséquence.

On peut alors supprimer le fichier téléchargé (ou l'archiver pour s'en reservir sur d'autres PC) :

rm -f jre-6-linux-i586.bin

On va maintenant déplacer le dossier jre1.6.0/ vers sa destination finale. Ici on prendra l'exemple de le déplacer dans /usr/java. On pourrait aussi utiliser un autre dossier comme /opt; en fait si une ancienne version de java existe déjà pour sa distribution on pourra s'en inspirer pour placer la nouvelle au même endroit. On va aussi renseigner 2 variables d'environnement avec le dossier java et un de ses sous-dossiers : l'essentiel est que ces variables soient bien en phase avec l'endroit où se trouvent effectivement les fichiers Java.

Si un dossier /usr/java n'existe pas encore on va le créer :

mkdir -p /usr/java

Dans le cas de Mandriva on tape alors :

mv jre1.6.0 /usr/java
echo "# Java jre1.6.0" >>/etc/bashrc
echo "export JAVA_HOME=/usr/java/jre1.6.0" >>/etc/bashrc
echo "export PATH=\"/usr/java/jre1.6.0/bin:\$PATH\"" >>/etc/bashrc

Dans le cas de Debian on remplace /etc/bashrc par /etc/bash.bashrc :

mv jre1.6.0 /usr/java
echo "# Java jre1.6.0" >>/etc/bash.bashrc
echo "export JAVA_HOME=/usr/java/jre1.6.0" >>/etc/bash.bashrc
echo "export PATH=\"/usr/java/jre1.6.0/bin:\$PATH\"" >>/etc/bash.bashrc

Les 3 dernières lignes créent en fin de fichier /etc/bashrc (ou /etc/bash.bashrc) les lignes :

# Java jre1.6.0
export JAVA_HOME=/usr/java/jre1.6.0
export PATH="/usr/java/jre1.6.0/bin:$PATH"

On peut bien sûr les créer directement par éditeur (en root) et si des lignes analogues existaient déjà pour une version plus ancienne il est préférable de les supprimer.

Et voilà. Les nouvelles variables JAVA_HOME et PATH seront opérationnelles dès l'ouverture d'une nouvelle session KDE ou Gnome, ou shell bash. On pourra le vérifier par des commandes du type :

$ echo $JAVA_HOME
/usr/java/jre1.6.0
 
$ echo $PATH
/usr/java/jre1.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
 
# et test si java fonctionne :
$ java -version
java version "1.6.0"

Explications et compléments

Dossiers Java et variables d'environnement

Java est en fait entièrement contenu dans un seul dossier, dans notre exemple /usr/java/jre1.6.0. Des outils exécutables sont contenus dans son sous-dossier bin.

La variable JAVA_HOME pointe sur le dossier Java à utiliser couramment. La plupart des applications trouvent Java automatiquement via cette variable d'environnement.

La variable PATH mentionne le sous-dossier bin pour accéder directement aux outils exécutables sans indiquer leur chemin complet.

Quelques rares logiciels ne passeront pas par JAVA_HOME et fouilleront par exemple certains dossiers comme /usr/java, /usr/lib ou /opt. On met donc Java dans un des dossiers et de simples liens dans les autres pour éviter d'occuper trop de place sur le disque. Se renseigner selon sa distribution pour identifier les dossiers et liens complémentaires utiles éventuels.

Un dossier peut contenir plusieurs versions de Java, et plusieurs liens symboliques complémentaires. Exemples de liens vers un JRE contenu dans un JDK qu'on avait mis dans /usr/lib :

/usr/lib/jre-1_5_0_08 -> /usr/lib/jdk-1_5_0_08/jre/
/usr/lib/jre1.5.0_08 -> /usr/lib/jdk-1_5_0_08/jre/

Le cas d'OpenOffice

OpenOffice n'utilise pas automatiquement JAVA_HOME : il faut ouvrir OpenOffice puis aller dans Outils/Options/Java et cocher le nouveau JRE (normalement OpenOffice le détecte bien, mais ne s'en sert que si l'utilisateur le souhaite explicitement).

Le cas de Firefox

Le navigateur internet Firefox peut faire appel au “plugin Java” pour traiter certains contenus. Le plugin se trouve dans le dossier Java, encore faut-il dire à Firefox où ça se trouve.

Supposons que Firefox recherche ses plugins dans /usr/local/firefox/plugins (chacun vérifiera dans quel dossier son Firefox aura été généré, dans cet exemple il s'agit de /usr/local/firefox). Avec l'exemple ci-dessus on va créer un lien symbolique par les commandes suivantes :

cd /usr/local/firefox/plugins
ln -sf /usr/java/jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin_oji.so

Cette manip déclare le plugin pour tous les utilisateurs du Firefox dont il est question ici. On peut aussi ne faire la manip que pour l'utilisateur trucmuch, auquel cas on tapera :

cd /home/trucmuch/.mozilla/plugins
ln -sf /usr/java/jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin_oji.so

Pour vérifier que le plugin soit reconnu on peut relancer Firefox puis taper about:plugins et cela devrait afficher des infos du type “Java(TM) Plug-in 1.6.0-b105”.

Pour tester que ce plugin fonctionne effectivement, on peut afficher la page testvm.xml et vérifier qu'on a un petit bonhomme qui danse (quelqu'un pourra confirmer s'il s'agit d'une java ou non ?).

Enfin un petit cas particulier : si on utilise le Firefox livré dans la distribution Mandriva, les plugins se trouvent dans un dossier du type :

/usr/lib/mozilla-firefox-1.5.xxx/ (cas de Mandriva 2006)
/usr/lib/firefox-2.0.0.3/         (cas de Mandriva 2007)

Le problème, c'est que ce dossier peut ne plus être utilisé à l'occasion d'une mise-à-jour du navigateur. On pourra par exemple avoir un nouveau dossier nommé :

/usr/lib/mozilla-firefox-1.5.yyy/ (cas de Mandriva 2006)
/usr/lib/firefox-2.0.0.4/         (cas de Mandriva 2007)

Dans ce cas, si on a déclaré libjavaplugin_oji.so directement dans l'ancien dossier il faudra recréer le lien dans le nouveau. Le passage par /home/trucmuch/.mozilla/plugins évite ce type de désagréments.

Script de redistribution

Si on prévoit d'installer Java de manière identique sur plusieurs PC, il peut être judicieux de se créer un script bash avec toutes les commandes ci-dessus. Dans ce cas il peut être intéressant de ne plus utiliser le fichier jre-6-linux-i586.bin qui réclame à chaque fois de valider la licence. Un astuce consiste à se créer une archive passive contenant le dossier Java, puis d'utiliser cette archive.

Exemple de création d'archive tar.bz2 :

chmod +x jre-6-linux-i586.bin
./jre-6-linux-i586.bin
tar cjf jre1.6.0.tar.bz2 jre1.6.0/

Exemple de réutilisation de l'archive :

tar xjf jre1.6.0.tar.bz2

;-)

 
telecharger_et_installer_la_derniere_machine_virtuelle_java.txt · Dernière modification: 2008/05/07 13:13 (édition externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki