Je vais maintenant installer Java sur mon dedibox. Cela est nécessaire pour faire tourner Tomcat, ainsi que les programmes Java normaux. A noter qu'il est possible avec le dedibox de faire tourner des serveurs (de jeu, chat, transfert de fichier, etc) écrit totalement en Java - encore un avantage pour moi d'avoir un serveur dédié. Je vais installer le distribution J2SE 5.0 JDK de Sun.
Quelques remarques sur cette choix:
- Très important! JDK (Java Development Kit) = JRE (Java Runtime Environment) + les outils de développement Java (java, javac, etc). Ces outils de développement sont exigés par Tomcat et tout développeur sérieux. Un JRE seul ne lui suffira pas.
- En début 2007, Java 6.0 est le tout dernier version de Java dernier disponible. Je préfère tout de même rester avec la version 5.0, plus prouvé.
- J'installe un distribution J2SE (Java 2 Standard Edition), qui ne support pas les Servlets/JSP. Cela ne pose pas de problème par contre, puisque Tomcat lui fournit tous les bibliothèques J2EE dont j'ai besoin.
- J'utilise la distribution Java de chez Sun (les créateurs), par préférence historique (j'ai grandi sur des Sparc). Une distribution "libre" du JDK développé par la communauté GNU est disponible dans un paquet nommé free-java-sdk. Attention! J'ai entendu dire sur les forums qu'il est moins rapide à l'éxécution.
- J2EE (Java 2 Enterprise Edition) qui support les Servlets/JSP (et plus!) de façon natif est disponible sous l'appelation Glassfish sur Ubuntu 7.04 (Feisty). Malheureusement dedibox ne fournit pas (encore) Feisty.
Notes de terminologie: JDK se dit parfois un SDK (Software Development Kit), et le le JVM (Java Virtual Machine) est souvent utilisé pour désigné le JRE. Java 6.0 est en vérité Java 1.6 . . . Java 1.2 était un si grande mis à jour que Sun l'a désigné Java 2.0. Ces numéros de version alternatifs s'utilise interchangeablement, mais la commande java -version renvoit toujours les numéros de version originaux, c'-à-d Java 1.5, Java 1.6, etc.
Installer le Java J2SE 5.0 JDK de Sun
La distribution Sun de Java est propriétaire, et se trouve donc dans la catégorie multiverse (logiciels propriétaire et non-maintenu par l'équipe Ubuntu) des paquets Ubuntu. Pour des raisons évident de sécurité, apt-get ne télécharge pas les paquets du multiverse par défaut. Je dois donc l'activer, ce qui se configure dans le fichier /etc/apt/sources.list.
J'ouvre ce fichier (en tant que root, ou avec sudo) et je retrouve les deux lignes commentées qui référent à la catégorie universe (logiciels "libres" non-maintenu par l'équipe Ubuntu). Dans mon fichier elles paraissent comme ci-dessous; l'adresse de votre serveur de paquets peut être différent.
#deb http://fr.archive.ubuntu.com/ubuntu/ edgy universe
#deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy universe
J'enlève le dièze (symbole de commentaire), et j'ajoute à chaque ligne la catégorie multiverse, comme suite:
deb http://fr.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy universe multiverse
J'enregistre le fichier et je raffraichis la liste de paquets disponible en lançant apt-get update:
$ sudo apt-get update
Je suis maintenant prêt à télécharger les paquets du J2SE 5.0 SDK de Sun. Le paquet principale s'appelle sun-java5-jdk. En commandant son installation un tas d'autres paquets (environ 130Mo) dont il dépend seront également installés. J'attendrai ...
$ sudo apt-get install sun-java5-jdk
L'installation se fait sans douleur, et il faut dire, par rapport aux autres distribs de Linux et même Windows, c'est très (très) facile. La seule intervention qui m'est demandé est de donner mon accord sur la licence Sun, ce qui demande d'appuyer deux fois sur [Espace]. Quand apt-get termine, mon JDK est installé est prêt à utiliser. Pour en être sûr, je tape java -version pour tester le JRE, et javac pour tester le JDK. Si les deux programmes sont retrouvés et lancés, et la version du JRE (java) est bien 5.0, alors l'installation est réussie. Ci-dessous la sortie de la commande java -version sur mon Dedibox:
$ java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)
Résultats de l'installation:
- Les outils du JDK sont mis à disposition dans le PATH (sous forme de liens symboliques dans /usr/bin)
- Les pages man des outils sont installés.
- La distribution est physiquement installé dans un sous-répertoire de /usr/lib/jvm
Ni le code source des bibliothèques Java, ni la documentation des APIs ne sont installé par défaut. Ils peuvent être installé par intermédiaire de apt-get comme on imagine:
$ sudo apt-get install sun-java5-source
$ sudo apt-get install sun-java5-doc
L'installation de la documentation demande quelques étapes en plus. Après avoir lancé apt-get, il faut manuellement télécharger le fichier jdk-1_5_0-doc.zip depuis java.sun.com, et le placer dans /tmp en tant que root. Ensuite apt-get se chargerai simplement de son déploiement sur le disque. Pour effectuer cette tâche sur mon serveur comme il est actuellement installé, je télécharge le zip sur mon PC maison, et ensuite je le charge sur mon serveur par moyen du serveur ftp installé précédemment.
Gérer plusieurs installations Java
Je travaille souvent avec des versions de Java différents, ce qui demande de pouvoir gérer plusieurs distributions en parallèle. Ubuntu fournit un très jolie outil pour faire exactement cela. Voyons comment ça marche en installant le J2SE6.0 JDK de Sun (126Mo). Cet version, étant plus récent et moins rigoureusement testé sous Ubuntu Edgy, est distribué dans le répositoire sécondaire edgy-backports. Venant de chez Sun, il est également dans la catégorie multiverse. Je vérifie donc d'abord que apt-get est configuré pour téléchargé ses paquets. Les deux lignes suivantes doit se trouver dans /etc/apt/sources.list:
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
Une fois ces deux lignes ajoutées, je peux télécharger très facilement le paquetage avec apt-get:
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
Après l'installation (qui ne demande pas d'accepter une licence), je reçois le résultat suivant quand je lance java -version:
$ java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)
L'installation du nouveau distribution ne prend donc pas la place de la distribution actuelle. Pour qu'il soit "activé", j'utilise l'outil update-java-alternatives:
$ sudo update-java-alternatives -l
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-6-sun
63 /usr/lib/jvm/java-6-sun
$ sudo update-java-alternatives -s java-6-sun
L'option -l affiche tous les versions installés et leur répertoire d'installation. L'option -s permet de sélectionner une de ces distributions. Un nouvel appel à java -version montre le résultat des instruction ci-dessus:
$ java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
Un autre endroit où je peux influencer le JVM utilisé par le système est dans le fichier /etc/jvm. Je ne sais pas exactement à quoi sert ce fichier, mais pour éviter tout problème, je mets mon distro Java préféré en tête de liste comme indiqué:
# This file defines the default system JVM search order. Each
# JVM should list their JAVA_HOME compatible directory in this file.
# The default system JVM is the first one available from top to
# bottom.
/usr
/usr/lib/jvm/java-1.5.0-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
Ici, j'ai mis le répertoire /usr en tête de liste, pour que le JDK/JVM configuré par update-java-alternatives soit toujours le premier trouvé.
Enfin, avant de continuer, je reviens sur mon distribution Java préféré (J2SE5.0 de Sun) en utilisant update-java-alternatives:
$ sudo update-java-alternatives -s java-1.5.0-sun
$ java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)
Mon installation de Java est maintenant terminée, et je suis prêt à passer à l'installation de mon serveur Tomcat!
1 comment:
Le problème de la version "free" de Java n'est pas seulement qu'elle est plus lente, c'est surtout qu'elle n'est pas conforme au standard. La version OpenJDK (java complet sous GPL) c'est pour bientôt
La dernière version Java 5 est la "1.5.0_11".
Pour le serveur Java, je te conseille d'utiliser quand même GlassFish (version 1 ou version 2 beta) dont voici une petite introduction ici (fait avec la v2, mais très similaire pour la v1). Si ca tourne dans Tomcat, ca doit tourner dans GlassFish. Les perfs, l'administration et les possiblités web services/ejb/... rendent le produit plus complet que Tomcat (Feisty rendra tout ca très simple).
Post a Comment