Installation de Java

Introduction

Le langage Java a été conçu pour permettre l'exécution du même code sur diverses plate-formes. Il y a plusieurs types de programmes Java, dont en particulier les applets Java, qui sont intégrées à des pages web et dont l'exécution est restreinte à un "bac à sable" pour ne pas qu'elles puissent accéder à des fichiers de l'utilisateur, et les applications Java, qui fonctionnent comme d'autres programmes, en local sur une machine, et qui ne sont pas limités comme les applets. Dans les deux cas, le code Java est "compilé", mais les fichiers résultant de la compilation nécessitent encore une interprétation différente suivant chaque plate-forme: cette opération est réalisée par la JVM (Java Virtual Machine, ou "machine Java").

Il ne faut pas confondre Java et Javascript, qui sont deux langages de programmation indépendant. Javascript est un langage plus simple, limité aux pages web. Java est un langage avec plus de fonctionnalités, plus rapide, mais qui nécessite de passer par une étape de compilation. Javascript est souvent utilisé pour des pages web dynamiques, dont les éléments changent sans qu'il soit nécessaire de passer à une autre page web. Java est plus approprié pour des applications complexes, en particulier si elles nécessitent un rendu graphique optimisé, comme par exemple des simulations numériques. Mais les applets Java ne peuvent pas directement changer les éléments d'une page web : leur action est limitée à une zone dans la page. Les deux technologies peuvent être activées ou désactivées indépendamment dans les navigateurs. Aujourd'hui, Javascript est intégré aux navigateurs alors que Java est disponible sous forme de plugin (souvent préinstallé).

De manière générale, il se peut que Java soit désactivé dans le navigateur, et qu'il faille l'activer en cherchant dans les préférences. Si malgré l'activation les applets Java ne marchent pas, il peut être nécessaire d'installer Java...

Instructions en fonction du système d'exploitation : MacOS - Linux - Windows

Instructions par navigateur : Firefox

Remarque: Java ne peut pas être installé sur l'iPhone et l'iPad, Apple ayant décidé de l'empêcher techniquement et juridiquement.

Test

Si Java est installé, vous devez voir une animation et la version de Java ci-dessous. Attention, le fait que Java soit installé ne signifie pas que toutes les applets Java fonctionneront avec votre configuration: pour être sûr que cela fonctionne, suivez les conseils ci-dessous en fonction de votre système d'exploitation.

Java n'est pas installé ou n'est pas activé dans votre navigateur.

Version de Java

Il est difficile de s'y retrouver dans les versions de Java, parce-que Sun a utilisé différents numéros pour la commercialisation et pour les JDK (qui servent à programmer en Java). Ainsi, J2SE 5 (Java 2 Standard Edition 5) correspond aux JDK 1.5. On résume souvent les deux à "Java 5" ou "Java 1.5", alors qu'il s'agit de la même chose. La version donnée par l'applet ci-dessus est celle des JDK.


Sur MacOS X

Java est préinstallé sur MacOS X des version 10.0 à 10.6.

MacOS X 10.5 "Leopard" et MacOS X 10.6 "Snow Leopard"

Il existe trois plugins Java sous MacOS X 10.5 et MacOS X 10.6 :

Chaque plugin a ses avantages et inconvénients :

L'utilitaire /Applications/Utilitaires/Préférences Java permet de choisir entre différents plugins, sous certaines conditions. En fonction des navigateurs :

Dans les dernières versions de MacOS X 10.5 et 10.6, plusieurs versions de Java sont préinstallées. Il est possible de changer la machine Java utilisée par défaut avec les préférences Java, mais quelque soit le choix, la machine Java 1.6 n'est jamais utilisée par les navigateurs avec MacOS X 10.5 (parce que les navigateurs fonctionnent en 32 bits et que Java 1.6 n'existe pas en 32 bits sur MacOS X 10.5).

MacOS X 10.7 "Lion" et MacOS X 10.8 "Mountain Lion"

Java n'est plus préinstallé à partir de MacOS X 10.7. Il était possible d'installer la machine Java d'Apple en cliquant sur la zone d'une applet avant la mise à jour Java 2012-006 de MacOS (octobre 2012), mais cette mise à jour désinstalle le plugin Java d'Apple et les préférences Java sans offrir de remplacement (la machine Java existe toujours, mais sans le plugin les applets Java ne peuvent pas fonctionner).

Apple suggère maintenant aux utilisateurs d'installer la machine Java d'Oracle, qui n'est pas tout à fait compatible (il manque des fonctionnalités) et ne correspond pas à la même version de Java (Apple s'est arrêté à la version 1.6 de Java, alors que Oracle n'a commencé qu'à la version 1.7). Apple a publié des instructions pour utiliser à nouveau son plugin Java.

A partir de MacOS X 10.8, GateKeeper provoque des messages d'alerte pour les applications Java normales (qui sont carrément interdites dans la Mac App Store d'Apple). Pour les éviter, les développeurs doivent s'enregistrer chez Apple (ce n'est pas gratuit), inclure une machine Java complète dans l'application (ce qui la rend énorme et réduit la compatibilité avec les anciennes versions de MacOS X), et signer le code.

Machine Java d'Oracle

Oracle propose une machine Java pour MacOS X à partir de la version 10.7.3 (Lion). Elle est téléchargeable à partir de http://java.com/. Les préférences se trouvent dans les préférences système. Google Chrome fonctionnant en 32 bits, ce navigateur ne peut pas faire marcher le plugin Java d'Oracle qui n'existe qu'en 64 bits.


Sur Linux

La machine Java (JVM - Java virtual machine) n'est pas toujours installée par défaut sur Linux, il faut donc l'installer si nécessaire.

Pour savoir si/quelle machine Java est installée, taper sous la ligne de commande:
java -version

Si vous obtenez un message du style "command not found", il faut l'installer. Si la version est comprise entre 1.6.0 et 1.6.9, il vaut mieux mettre à jour Java pour éviter un bug lié au cache.

Il existe plusieurs machines Java pour Linux, dont notamment:

Après l'installation (surtout si elle est manuelle), il est parfois nécessaire (suivant ce qui existait avant) de faire un lien symbolique depuis le plugin Java de la machine Java vers le dossier de plugins de Mozilla (si le navigateur utilisé est Mozilla ou un navigateur dérivé comme Galeon; Konqueror demande le chemin vers l'exécutable de java).

Pour ce faire, il faut s'identifier en root, et utiliser la commande:
ln -s [dossier_de_Java]/plugin/i386/ns610/libjavaplugin_oji.so [dossier_de_mozilla]/plugins/libjavaplugin_oji.so
Le dossier de java se trouve généralement dans /usr/java. Le dossier de Mozilla se trouve généralement dans /usr/lib/mozilla.

Ubuntu

Oracle ayant retiré la licence permettant sa redistribution, la machine Java de Sun n'est plus disponible dans Ubuntu et d'autres distributions Linux. On a aujourd'hui le choix entre OpenJDK et la machine Java d'Oracle (version 7), mais les deux solutions posent des problèmes:

Plus d'informations à ce sujet sur le site d'Ubuntu.

Anciennes infos

Sur Ubuntu 8.10 et 9.04, le plus simple et le plus fiable pour installer la machine Java de Sun est d'aller dans le menu Applications - Ajouter/supprimer..., de choisir "Afficher: Toutes les applications disponibles" (la machine Java de Sun n'étant pas entièrement libre), de rechercher "java", et de choisir "Environnement d'exécution Sun Java 6" et "Greffon Sun Java 6.0" (on peut aussi installer les paquets sun-java6-jre et sun-java6-plugin avec Synaptic). Si plusieurs machines Java sont installées, on peut en choisir une par défaut en exécutant : sudo update-alternatives --config java dans le Terminal.

Sur Ubuntu 9.04, les plugins de Firefox sont dans /usr/lib/mozilla/plugins/ et le plugin Java 64 bits de Sun est: /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so. Normalement, si le plugin Java de Sun est installé, /usr/lib/mozilla/plugins/libjavaplugin.so pointe vers /etc/alternatives/mozilla-javaplugin.so, qui pointe vers /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so. Si le navigateur se plante en ouvrant une page avec une applet, c'est probablement qu'un plugin 32 bits est utilisé par un navigateur 64 bits ou inversement.

Sur Ubuntu 10.04 (Lucid Lynx), si ce n'est pas déjà fait, il faut commencer par ajouter le dépôt des partenaires Canonical: aller dans le menu Système - Administration - Sources de logiciels, choisir l'onglet "Autres logiciels", cliquer sur "Ajouter...", et entrer "deb http://archive.canonical.com/ubuntu lucid partner". La fermeture de la fenêtre permet la validation et la recherche des nouveaux paquets. On peut ensuite aller dans la Logitèque Ubuntu pour installer "Greffon Sun Java 6.0". Si OpenJDK et IcedTea sont installés, il faut choisir le plugin de Sun avec sudo update-alternatives --config mozilla-javaplugin.so. Il ne reste plus qu'à relancer le navigateur.

Sur Ubuntu 10.10 (Maverick Meerkat), suivre ces instructions.

Plus d'informations au sujet de Java pour Ubuntu


Sur Windows

De manière générale, quand Java n'est pas déjà installé sur Windows, il suffit de l'installer à partir de http://java.com/. Réinstaller Java à partir de ce site permet aussi parfois de résoudre des problèmes. Lors de l'installation de la machine Java d'Oracle, attention à bien désactiver l'installation de la barre d'outils Ask (on peut aussi installer le JRE à partir de ce site pour éviter la barre d'outils Ask).

Internet Explorer sous Windows Vista

Au premier chargement d'une page web contenant une applet Java (comme cette page), si vous avez 2 messages d'erreur, que l'applet ne s'affiche pas, et qu'une barre jaune apparaît en haut :

Le message de la barre jaune est trompeur : il prétend qu'IE vous a protégé en empêchant un contrôle ActiveX de s'installer, alors qu'en fait IE n'a protégé de rien du tout, qu'il ne s'agit pas forcément d'un contrôle ActiveX (l'instruction demande juste l'affichage d'une applet Java, pas forcément avec la technologie ActiveX de Microsoft), et que la page ne demandait pas l'installation de quoi que ce soit.

La situation décrite plus haut signifie généralement que Java n'est pas installé. Il faut donc installer Java à partir de http://www.java.com/ sous un compte administrateur.

Une fois Java installé, les applets s'affichent (et donc sont exécutées automatiquement), mais ne fonctionnent pas normalement. Par exemple, une applet affichant des zones sur une image en fonction de la position de la souris n'affiche pas ces zones.

L'utilisateur est alors sensé cliquer sur chaque applet à chaque chargement de page pour pouvoir les utiliser normalement. Par exemple, pour l'applet "Calcotron", qui ouvre une fenêtre de calculette quand on clique dessus, il faut cliquer 2 fois (une fois pour "activer" l'applet, et une fois pour demander à l'applet l'affichage de la fenêtre).

Cette "fonctionnalité", qui prétend être liée à la sécurité, a en fait été introduite par Microsoft après avoir perdu un procès contre Eolas au sujet d'un brevet logiciel. Le fait de devoir cliquer à chaque fois n'a donc rien à voir avec la sécurité (d'ailleurs, les applets sont exécutées automatiquement, elles ne sont juste pas utilisables), et Microsoft ne voulait pas faire ça mais a été contraint de le faire pour des raisons juridiques.

Microsoft a finalement décidé de payer pour pouvoir utiliser ce "brevet", et une mise à jour de Internet Explorer devrait permettre de ne pas avoir à cliquer à chaque fois pour activer les applets.

Si Java est installé mais que le message "Java n'est pas installé ou n'est pas activé dans votre navigateur." s'affiche au lieu de l'animation :

Windows XP

Certaines versions de Windows XP n'ont aucune machine Java préinstallée. Cependant, certains constructeurs incluent Java sur leurs nouvelles machines. Il peut donc être nécessaire d'installer la machine Java d'Oracle.

Versions antérieures de Windows

Microsoft a essayé de prendre le contrôle de Java en incluant une version trafiquée de Java sur Windows, qui ne correspond pas à l'interface officielle. Etant donné les bugs de cette machine Java, il peut être nécessaire d'installer la machine Java d'Oracle à la place.

En cas de problème avec Internet Explorer (5 et 6) après avoir installé Java

Dans le cas où vous obtenez un carré gris, la fonction Java (console Java) est peut-être désactivée dans la configuration d'IE. Pour cela :

Dans le cas où rien ne s'affiche (ou éventuellement une phrase du type : "Java n'est pas activé dans votre navigateur") : le problème vient peut-être des paramètres de sécurité définis pour le navigateur. Un niveau de sécurité élevé pour la zone Internet n'autorise pas par défaut le lancement d'applets Java. Pour cela :

Anciennes infos

Java 6 (avant la màj 10) avec Windows XP et Vista (également observé sous Linux)

Il existe un bug de la machine Java 6 de Sun/Oracle sur Windows qui empêche l'affichage automatique des applets (quelque soit le navigateur) : un cadre apparaît à la place, avec une petite croix rouge. L'applet s'affiche si on recharge la page. Ce bug semble être causé par un problème dans le cache de Java. Il est corrigé dans la mise à jour 10 de Java 6.

On peut aussi résoudre temporairement le problème sans mettre à jour Java, en vidant le cache des applets :


Firefox

Firefox 3.6.14

Un bug de Firefox 3.6.14 empêche Java de fonctionner sur Windows (les applets ne redémarrent plus après plusieurs chargements de pages). Il vaut mieux éviter cette version.

Extension "browseimages" de Firefox

Un bug de l'extension "browseimages" de firefox empêche l'exécution des applets Java dans les fenêtres qui s'ouvrent quand on clique sur une icône. Firefox se plante la deuxième fois que l'on ouvre une fenêtre avec une applet. Il est donc conseillé de désactiver cette extension.

Firefox 17+

A partir de Firefox 17, les anciennes versions des plugins (en particulier s'ils ont des failles de sécurité) sont bloquées automatiquement. Si la zone de l'applet est assez grande, un message d'erreur s'affiche sur cette zone. Sinon rien n'est affiché. Pour lancer un plugin bloqué sur un site dans lequel on a confiance, il faut repérer le petit cube à gauche de l'adresse, qui s'affiche en blanc sur blanc ou en bleu sur blanc. En cliquant dessus, on obtient la possibilité de lancer le plugin, et il est aussi possible de généraliser l'autorisation à tous les plugins du site.