[[java]]
Piste: » java
Java
Présentation
Java désigne plusieurs choses :
- un langage de programmation ;
- la plate-forme d'exécution des programmes écrits dans ce langage (la Machine Virtuelle Java) ;
- la plate-forme de développement ;
- le plug-in permettant d'exécuter des programmes spéciaux (applets) écrits dans ce langage dans un navigateur internet.
Le tout forme un ensemble cohérent, il suffit de savoir les éléments dont vous avez besoin.
Si vous savez que vous avez besoin de Java, mais que vous ne savez pas quoi installer, la section choix du paquet à installer vous aidera.
Versions
Java évolue au fil des années. La version actuelle est Java SE 6.
En plus de faire évoluer les numéros de versions, le nom complet de chaque version a parfois été changé, ce qui rend la compréhension un peu compliquée.
Historique
Voici les différentes versions ainsi que leur date de sortie :
- JDK 1.0 (23 janvier 1996)
- JDK 1.1 (19 janvier 1997)
- J2SE 1.2 (9 décembre 1998)
- J2SE 1.3 (8 mai 2000)
- J2SE 1.4 (6 février 2002)
- J2SE 5.0 (30 septembre 2004)
- Java SE 6 (11 décembre 2006)
- Java SE 7 (en développement)
En outre, Java 2 désigne les versions de J2SE 1.2 à J2SE 1.4 (il y a vraiment de quoi se perdre).
Compatibilité
Java assure une compatibilité binaire ascendante (les programmes compilés avec une ancienne version peuvent s'exécuter avec une plate-forme plus récente).
Mise à part l'introduction de nouveaux mots-clés (assert dans 1.4 et enum dans 5.0), la compatibilité binaire ascendante est presque respectée (les sources d'un programme écrit pour être compilées avec une ancienne version peuvent être compilées avec une nouvelle version du compilateur).
Différence d'exécution entre Windows et Ubuntu
Pour résoudre ce problème il suffit de suivre les étapes suivantes : 1) sudo aptitude install sun-java6-jdk sun-java6-jre
2) sudo update-alternatives –config java choisir la version : "/usr/lib/jvm/java-6-sun/jre/bin/java"
3) relancer Eclipse
4) menu : Window - Preferences puis : Java - Installed JREs cliquer sur le bouton Search … dans emplacement écrire : "/usr/lib/jvm/java-6-sun/" cliquer sur valider sélectionner "jre" et valider
Implémentations
Il existe "plusieurs" implémentations de Java, parmi lesquelles :
- Java Sun : l'implémentation fournie par Sun (95% libre), l'entreprise à l'origine du langage ;
- gcj : une première implémentation libre, mais non complète ;
- OpenJDK : une implémentation complète, validée, entièrement libre (basée sur Java Sun, en remplaçant les parties non libres).
Les deux versions susceptibles d'être utilisées aujourd'hui sont Java Sun et OpenJDK.
À part pour d'anciennes versions ou des problèmes de compatibilité spécifiques, il est maintenant vivement recommandé d'utiliser OpenJDK, totalement libre, et offrant de meilleures performances que Java Sun.
Installation
Par les dépôts (recommandé)
Si vous ne savez pas quoi installer, consultez la section choix du paquet à installer.
| OpenJDK 6 | Java 6 Sun | Java 5 Sun | Description |
|---|---|---|---|
| openjdk-6-jre | sun-java6-jre | sun-java5-jre | plate-forme d'exécution (pour exécuter des applications Java) |
| icedtea6-plugin | sun-java6-plugin | sun-java5-plugin | plug-in pour exécuter des applets Java dans le navigateur internet |
| openjdk-6-jdk | sun-java6-jdk | sun-java5-jdk | plate-forme de développement (pour compiler des applications Java, réservée aux développeurs) |
| openjdk-6-doc | sun-java6-doc | sun-java5-doc | javadoc (documentation Java), indispensable aux développeurs, installée dans /usr/share/doc/… |
| openjdk-6-source | sun-java6-source | sun-java5-source | sources des bibliothèques Java SE |
| openjdk-6-demo | sun-java6-demo | sun-java5-demo | quelques exemples et démonstrations |
| sun-java6-fonts | sun-java5-fonts | polices de caractères non libres | |
| sun-java6-javadb | javadb | ||
| openjdk-6-jre-headless | JRE allégé (voir ici) | ||
| openjdk-6-dbg | debugging symbols |
Manuelle
Malgré la compatibilité ascendante de Java, certains préfèrent, en entreprise notamment, utiliser une ancienne version pour développer, car c'est sur cette version que le programme est destiné à être exécuté.
Pour cela, il est possible de télécharger les anciennes versions de Java.
Il est bien sûr possible de faire de même avec les versions actuelles, même si dans ce cas, l'utilisation des dépôts est préférable.
Choix du paquet à installer
Voici quelques exemples de cas d'utilisation de Java, avec le lien vers le paquet à installer.
Je souhaite exécuter un programme Java
Pour exécuter un programme Java, tels qu'azureus ou eclipse, installez le paquet openjdk-6-jre.
Je souhaite exécuter une applet Java dans un navigateur
Pour exécuter une applet Java, telle que celle utilisée pour déclarer ses impôts en ligne, ou encore de nombreux petits jeux en ligne, installez le paquet de plug-in correspondant à votre version de java (voir tableau ci-dessus).
/tmp) et cliquez sur OK.
- soit aucune installation de paquet ne vous est proposée1),
- soit vous rencontrez des problèmes avec le plugin installé2),
alors vous pouvez suivre ce tutoriel pour installer la version béta 64 bits du plugin sun java6.
Je souhaite développer et compiler des programmes Java
Pour pouvoir compiler des fichiers .java en .class, il faut installer le JDK : openjdk-6-jdk.
Si vous utilisez eclipse, le JDK n'est pas indispensable, car eclipse intègre son propre compilateur. Il est cependant pratique d'installer le JDK, pour compiler en ligne de commande ou grâce à ant.
FAQ
Connaître la version de Java utilisée par défaut
Pour connaître la version de la plate-forme d'exécution Java, tapez :
java -version
Pour connaître la version du compilateur (si vous avez installé un JDK) :
javac -version
Changer la version de Java utilisée par défaut
De manière interactive
Exécutez :
sudo update-alternatives --config java
Ceci va lister la liste des versions disponibles, et vous n'aurez plus qu'à choisir le numéro de celle que vous souhaitez utiliser par défaut.
De manière non-interactive
Vous pouvez sélectionner la version de Java désirée (ici OpenJDK) en tapant :
sudo update-java-alternatives -s java-6-openjdk
Pour obtenir la liste des versions disponibles, tapez :
update-java-alternatives -l
Exécuter un fichier JAR
Certains logiciels Java sont distribués sous forme de .jar exécutable.
Un .jar n'est rien d'autre qu'une archive (comme un .zip) contenant l'ensemble des fichiers nécessaires à l'exécution du programme.
.jar ne sont pas tous exécutables. Ils le sont si et seulement si dans le fichier META-INF/MANIFEST.MF une ligne contient :
Main-Class: lenomdupackage.LeNomDeLaClassePrincipale
(en adaptant le nom de la classe principale).
Pour les exécuter, utilisez la commande :
java -jar fichier.jar
Permettre l'exécution d'un fichier JAR par un double-clic
Il suffit d'associer les fichiers .jar à la Machine Virtuelle Java. Pour cela, faites un clic droit sur un fichier .jar, choisissez Propriétés et allez dans l'onglet Ouvrir avec. Il ne reste plus qu'à sélectionner la plate-forme d'exécution Java :
Si une telle option n'est pas disponible, cliquez sur le bouton Ajouter, dépliez dans le bas de la fenêtre la section Utiliser une commande personnalisée, et entrez le code :
java -jar
puis validez. Ensuite, sélectionnez Java dans la liste des applications.
Configurer le fuseau horaire pour Java
Sur d'anciennes versions d'Ubuntu, il est possible que les programmes Java n'indiquement pas la bonne date (quelques heures de décalage). Pour éviter cela, il faut aider la Machine Virtuelle Java à utiliser le bon fuseau horaire.
Cela se configure par la variable d'environnement TZ, qu'il est possible d'initialiser à Europe/Paris par exemple (consultez le fichier /etc/timezone pour obtenir la valeur par défaut de votre environnement).
Pour l'initialiser provisoirement (pour tester) :
export TZ='Europe/Paris'
Pour la configurer définitivement, éditez le fichier /etc/environment, qui contient les variables d'environnement chargées par défaut, et rajoutez :
TZ="Europe/Paris"
Ceci sera pris en compte au redémarrage du Shell d'exécution du programme Java.

