Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

telecharger_et_installer_la_derniere_machine_virtuelle_java [2007/06/25 22:03]
jeanmm
telecharger_et_installer_la_derniere_machine_virtuelle_java [2017/02/21 15:10] (version actuelle)
Ligne 1: Ligne 1:
 +====== 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 :
 +
 +<code bash>
 +chmod +x jre-6-linux-i586.bin
 +./jre-6-linux-i586.bin
 +</code>
 +
 +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) :
 +
 +<code bash>
 +rm -f jre-6-linux-i586.bin
 +</code>
 +
 +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 :
 +
 +<code bash>
 +mkdir -p /usr/java
 +</code>
 +
 +Dans le cas de Mandriva on tape alors :
 +
 +<code bash>
 +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
 +</code>
 +
 +Dans le cas de Debian on remplace /etc/bashrc par /etc/bash.bashrc :
 +
 +<code bash>
 +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
 +</code>
 +
 +Les 3 dernières lignes créent en fin de fichier **/etc/bashrc** (ou **/etc/bash.bashrc**) les lignes :
 +<code bash>
 +# Java jre1.6.0
 +export JAVA_HOME=/usr/java/jre1.6.0
 +export PATH="/usr/java/jre1.6.0/bin:$PATH"
 +</code>
 +
 +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 :
 +
 +<code bash>
 +$ 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"
 +
 +</code>
 +
 +
 +====== 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 :
 +
 +<code bash>
 +/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/
 +</code>
 +
 +===== 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 :
 +
 +<code bash>
 +cd /usr/local/firefox/plugins
 +ln -sf /usr/java/jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin_oji.so
 +</code>
 +
 +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 :
 +
 +<code bash>
 +cd /home/trucmuch/.mozilla/plugins
 +ln -sf /usr/java/jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin_oji.so
 +</code>
 +
 +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 [[http://www.java.com/fr/download/help/testvm.xml | 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 :
 +<code bash>
 +/usr/lib/mozilla-firefox-1.5.xxx/ (cas de Mandriva 2006)
 +/usr/lib/firefox-2.0.0.3/        (cas de Mandriva 2007)
 +</code>
 +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é :
 +<code bash>
 +/usr/lib/mozilla-firefox-1.5.yyy/ (cas de Mandriva 2006)
 +/usr/lib/firefox-2.0.0.4/        (cas de Mandriva 2007)
 +</code>
 +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 :
 +
 +<code bash>
 +chmod +x jre-6-linux-i586.bin
 +./jre-6-linux-i586.bin
 +tar cjf jre1.6.0.tar.bz2 jre1.6.0/
 +</code>
 +
 +Exemple de réutilisation de l'archive :
 +
 +<code bash>
 +tar xjf jre1.6.0.tar.bz2
 +</code>
 +
 +;-)
 
 
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