|
|
|
|
|
|
Développons en Java v 1.20 | |
| Copyright (C) 1999-2009 Jean-Michel DOUDOUX |
![]() |
![]() |
Java est un langage de programmation à usage général, évolué et orienté objet dont la syntaxe est proche du C.
Ce chapitre contient plusieurs sections :
Java possède un certain nombre de caractéristiques qui ont largement contribué à son énorme succès :
| Java est interprété | le source est compilé en pseudo code ou byte code puis exécuté par un interpréteur Java : la Java Virtual Machine (JVM). Ce concept est à la base du slogan de Sun pour Java : WORA (Write Once, Run Anywhere : écrire une fois, exécuter partout). En effet, le byte code,
s'il ne contient pas de code spécifique à une plate-forme particulière peut être exécuté et obtenir quasiment les même résultats sur toutes les machines disposant d'une JVM. |
| Java est portable : il est indépendant de toute plate-forme | il n'y a pas de compilation spécifique pour chaque plate forme. Le code reste indépendant de la machine sur laquelle il s'exécute. Il est possible d'exécuter des programmes Java sur tous les environnements qui possèdent une Java Virtual Machine. Cette indépendance est assurée au niveau du
code source grâce à Unicode et au niveau du byte code. |
| Java est orienté objet. | comme la plupart des langages récents, Java est orienté objet. Chaque fichier source contient la définition d'une ou plusieurs classes qui sont utilisées les unes avec les autres pour former une application. Java n'est pas complètement objet car il définit
des types primitifs (entier, caractère, flottant, booléen,...). |
| Java est simple | le choix de ses auteurs a été d'abandonner des éléments mal compris ou mal exploités des autres langages tels que la notion de pointeurs (pour éviter les incidents en manipulant directement la mémoire), l'héritage multiple et la surcharge des opérateurs, ... |
| Java est fortement typé | toutes les variables sont typées et il n'existe pas de conversion automatique qui risquerait une perte de données. Si une telle conversion doit être réalisée, le développeur doit obligatoirement utiliser un cast ou une méthode statique fournie en standard pour la réaliser. |
| Java assure la gestion de la mémoire | l'allocation de la mémoire pour un objet est automatique à sa création et Java récupère automatiquement la mémoire inutilisée grâce au garbage collector qui restitue les zones de mémoire laissées libres suite à la destruction des objets. |
| Java est sûre | la sécurité fait partie intégrante du système d'exécution et du compilateur. Un programme Java planté ne menace pas le système d'exploitation. Il ne peut pas y avoir d'accès direct à la mémoire. L'accès au disque dur est réglementé dans une applet.
Les applets fonctionnant sur le Web sont soumises aux restrictions suivantes dans la version 1.0 de Java :
|
| Java est économe | le pseudo code a une taille relativement petite car les bibliothèques de classes requises ne sont liées qu'à l'exécution. |
| Java est multitâche | il permet l'utilisation de threads qui sont des unités d'exécution isolées. La JVM, elle même, utilise plusieurs threads. |
Il existe 2 types de programmes avec la version standard de Java : les applets et les applications. Une application autonome (stand alone program) est une application qui s'exécute sous le contrôle direct du système d'exploitation. Une applet est une application qui est chargée par un navigateur et qui est exécutée sous le contrôle d'un plug in de ce dernier.
Les principales différences entre une applet et une application sont :
Les principaux événements de la vie de Java sont les suivants :
| Année | Evénements |
| 1995 | mai : premier lancement commercial |
| 1996 | janvier : JDK 1.0.1 |
| 1996 | septembre : lancement du JDC |
| 1997 | février : JDK 1.1 |
| 1998 | décembre : lancement de J2SE 1.2 et du JCP |
| 1999 | décembre : lancement J2EE |
| 2000 | mai : J2SE 1.3 |
| 2002 | février : J2SE 1.4 |
| 2004 | septembre : J2SE 5.0 |
| 2006 | mai : Java EE 5 décembre : Java SE 6.0 |
| 2008 | décembre : Java FX 1.0 |
Sun fourni gratuitement un ensemble d'outils et d'API pour permettre le développement de programmes avec Java. Ce kit, nommé JDK, est librement téléchargeable sur le site web de Sun http://java.sun.com ou par FTP ftp://java.sun.com/pub/
Le JRE (Java Runtime Environment) contient uniquement l'environnement d'exécution de programmes Java. Le JDK contient lui même le JRE. Le JRE seul doit être installé sur les machines où des applications Java doivent être exécutées.
Depuis sa version 1.2, Java a été renommé Java 2. Les numéros de version 1.2 et 2 désignent donc la même version. Le JDK a été renommé J2SDK (Java 2 Software Development Kit) mais la dénomination JDK reste encore largement utilisée, à tel point que la dénomination JDK est reprise dans la version 5.0. Le JRE a été renommé J2RE (Java 2 Runtime Environment).
Sun définit trois plateformes d'exécution (ou éditions) pour Java pour des cibles distinctes selon les besoins des applications à développer :
La séparation en trois plateformes permet au développeur de mieux cibler l'environnement d'exécution et de faire évoluer les plateformes de façon plus indépendante.
Avec différentes éditions, les types d'applications qui peuvent être développées en Java sont nombreux et variés :
Sun fourni le JDK, à partir de la version 1.2, sous les plate-formes Windows, Solaris et Linux.
La version 1.3 de Java est désignée sous le nom Java 2 version 1.3.
La version 1.5 de Java est désignée officiellement sous le nom J2SE version 5.0.
La version 6 de Java est désignée officiellement sous le nom Java SE version 6.
La documentation au format HTML des API de Java est fournie séparément. Malgré sa taille imposante, cette documentation est indispensable pour obtenir des informations complètes sur toutes les classes fournies. Le tableau ci dessous résume la taille des différents composants selon leur version pour la plate-forme Windows.
Version 1.0 |
Version 1.1 |
Version 1.2 |
Version 1.3 |
Version 1.4 |
Version 5.0 |
Version 6 |
|
| JDK compressé | 8,6 Mo |
20 Mo |
30 Mo |
47 Mo |
44 Mo |
73 Mo |
|
| JDK installé | 53 Mo |
59 Mo |
|||||
| JRE compressé | 12 Mo |
7 Mo |
14 Mo |
15,5 Mo |
|||
| JRE installé | 35 Mo |
40 Mo |
|||||
| Documentation compressée | 16 Mo |
21 Mo |
30 Mo |
43,5 Mo |
56 Mo |
||
| Documentation décompressée | 83 Mo |
106 Mo |
144 Mo |
223 Mo |
Les technologies Java évoluent au travers du JCP (Java Community Process). Le JCP est une organisation communautaire ouverte qui utilise des processus définis pour définir ou réviser les spécifications des technologies Java.
Les membres du JCP sont des personnes individuelles ou membre d'organisations communautaires ou de sociétés commerciales qui tendent à mettre en adéquation la technologie Java avec les besoins du marché.
Bien que le JCP soit une organisation communautaire ouverte, Sun Microsystems est le détenteur des marques déposées autour de la technologie Java et l'autorité suprême concernant les plates-formes Java.
Des membres du JCP qui souhaitent enrichir la plate-forme Java doivent faire une proposition formalisée sous la forme d'une JSR (Java Specification Request). Chaque JSR suit un processus qui définit son cycle de vie autour de plusieurs étapes clés : drafts, review et approval.
Chaque JSR est sous la responsabilité d'un leader et traitée par un groupe d'experts.
Il est possible de souscrire à la liste de diffusion du JCP à l'url : http://jcp.org/participation/mail/
Cette liste de diffusion permet d'être informé sur les évolutions des JSR et des procédures du JCP et de participer à des revues publiques ou fournir les commentaires
Le site du JCP propose une liste des JSR par plates-formes ou technologies :
Une fois validée, chaque JSR doit proposer une spécification, une implémentation de référence (Reference Implementation) et un technology compatibility kit (TCK).
Chaque version de la plate-forme Java possède un numéro de version et un nom de projet.
A partir de la version 5, la plate-forme possède deux numéros de version :
Le nom de projet des versions majeures concerne des oiseaux ou des mammifères.
Le nom de projet des versions mineures concerne des insectes.
|
Version |
Nom du projet |
Date de diffusion |
|
JDK 1.0 |
Oak |
Mai 1995 |
|
JDK 1.1 |
Février 1997 |
|
|
JDK 1.1.4 |
Sparkler |
Septembre 1997 |
|
JDK 1.1.5 |
Pumpkin |
Décembre 1997 |
|
JDK 1.1.6 |
Abigail |
Avril 1998 |
|
JDK 1.1.7 |
Brutus |
Septembre 1998 |
|
JDK 1.1.8 |
Chelsea |
Avril 1999 |
|
J2SE 1.2 |
Playground |
Décembre 1998 |
|
J2SE 1.2.1 |
Mars 1999 |
|
|
J2SE 1.2.2 |
Cricket |
Juillet 1999 |
|
J2SE 1.3 |
Kestrel |
Mai 2000 |
|
J2SE 1.3.1 |
Ladybird |
Mai 2001 |
|
J2SE 1.4.0 |
Merlin |
Février 2002 |
|
J2SE 1.4.1 |
Hopper |
Septembre 2002 |
|
J2SE 1.4.2 |
Mantis |
Juin, 2003 |
|
J2SE 5.0 (1.5) |
Tiger |
Septembre 2004 |
|
Java SE 6.0 (1.6) |
Mustang |
Décembre 2006 |
|
Java SE 7.0 (1.7) |
Dolphin |
Début 2010 |
Cette première version est lancée officiellement en mai 1995.
Elle se compose de 8 packages :
Cette version du JDK est annoncée officiellement en mars 1997. Elle apporte de nombreuses améliorations et d'importantes fonctionnalités nouvelles dont :
Cette version du JDK est lancée fin 1998. Elle apporte de nombreuses améliorations et d'importantes fonctionnalités nouvelles dont :
Java 2 se décline en 3 éditions différentes qui regroupent des APIs par domaine d'application :
Le but de ces trois éditions est de proposer une solution reposant sur Java quelque soit le type de développement à réaliser.
Cette version du JDK est lancée en mai 2000. Elle apporte de nombreuses améliorations notamment sur les performances et des fonctionnalités nouvelles dont :
La rapidité d'exécution a été grandement améliorée dans cette version.
Cette version du JDK, lancée début 2002, est issue des travaux de la JSR 59. Elle apporte de nombreuses améliorations notamment sur les performances et des fonctionnalités nouvelles dont :
Cette version ajoute un nouveau mot clé au langage pour utiliser les assertions : assert.
La version 1.5 du J2SE est spécifiée par le JCP sous la JSR 176. Elle intègre un certain nombre de JSR dans le but de simplifier les développements en Java.
Ces évolutions sont réparties dans une quinzaine de JSR qui seront intégrées dans la version 1.5 de Java.
JSR-003 |
JMX Management API |
JSR-013 |
Decimal Arithmetic |
JSR-014 |
Generic Types |
JSR-028 |
SASL |
JSR-114 |
JDBC API Rowsets |
JSR-133 |
New Memory Model and thread |
JSR-163 |
Profiling API |
JSR-166 |
Concurrency Utilities |
JSR-174 |
Monitoring and Management for the JVM |
JSR-175 |
Metadata facility |
JSR-199 |
Compiler APIs |
JSR-200 |
Network Transfer Format for Java Archives |
JSR-201 |
Four Language Updates |
JSR-204 |
Unicode Surrogates |
JSR-206 |
JAXP 1.3 |
La version 1.5 de Java est désignée officiellement sous le nom J2SE version 5.0.
La technologie Pack200 permet de compresser les fichiers .jar pour obtenir des gains pouvant atteindre 60%.
Cette version est spécifiée par le JCP sous la JSR 270 et développée sous le nom de code Mustang.
Elle intègre un changement de dénomination et de numérotation : la plate-forme J2SE est renommée en Java SE, SE signifiant toujours Standard Edition.
Cette version inclue les JSR :
JSR 105 |
XML Digital Signature APIs |
JSR 173 |
Streaming API for XML |
JSR 181 |
Web Services Metadata for Java Platform |
JSR 199 |
Java Compiler API |
JSR 202 |
Java Class File Specification Update |
JSR 221 |
JDBC 4.0 API Specification |
JSR 222 |
Java Architecture for XML Binding (JAXB) 2.0 |
JSR 223 |
Scripting for the Java Platform |
JSR 224 |
Java API for XML-Based Web Services (JAX-WS) 2.0 |
JSR 250 |
Common Annotations for the Java Platform |
JSR 269 |
Pluggable Annotation Processing API |
Elle apporte plusieurs améliorations :
L'amélioration du support XML
Java 6.0 s'est enrichie avec de nombreuses nouvelles fonctionnalités concernant XML :
JDBC 4.0
Cette nouvelle version de l'API JDBC est le fruit des travaux de la JSR 221. Elle apporte de nombreuses évolutions :
Le support des services web
Les services web font leur apparition dans la version SE de Java : précédemment ils n'étaient intégrés que dans la version EE. Plusieurs JSR sont ajoutés pour supporter les services web dans la plate-forme :
Le support des moteurs de scripts
L'API Scripting propose un standard pour l'utilisation d'outils de scripting. Cette API a été développée sous la JSR 223. La plate-forme intègre Rhino un moteur de scripting Javascript
L'amélioration de l'intégration dans le système d'exploitation sous jacent
L'améliorations dans l'API Collection
L'améliorations dans l'API IO
Java Compiler API
Cette API est le résultat des travaux de la JSR 199 et a pour but de proposer une utilisation directe du compilateur Java. Cette API est utilisable à partir du package javax.tools
Pluggable Annotation-Processing API
Cette API est le résultat des travaux de la JSR 269 et permet un traitement des annotations à la compilation. Cette API est utilisable à partir du package javax.annotation.processing
Common Annotations
Cette API est le résultat des travaux de la JSR 250 et définit plusieurs nouvelles annotations standards.
@javax.annotation.Generated : permet de marque une classe, une méthode ou un champ comme étant généré par un outil
@javax.annotation.PostConstruct : méthode exécutée après la fin de l'injection de dépendance
@javax.annotation.PreDestroy : méthode de type callback appelée juste avant d'être supprimé par le conteneur
@javax.annotation.Resource : permet de déclarer une référence vers une ressource
@javax.annotation.Resources : conteneur pour la déclaration de plusieurs ressources
Java Class File Specification
Issue des travaux de la JSR 202, cette spécification fait évoluer le format du fichier .class résultant de la compilation.
La vérification d'un fichier .class exécute un algorithme complexe et coûteux en ressources et en temps d'exécution pour valider un fichier .class.
La JSR 202, reprend une technique développée pour le profile CLDC de J2ME nommée split vérification qui décompose la vérification d'un fichier .class en deux étapes :
Le temps de chargement du fichier .class est ainsi réduit.
Le Framework JavaBeans Activation
Le Framework JavaBeans Activation a été intégré en standard dans la plate-forme Java SE 6. Ce framework historiquement fourni séparément permet de gérer les types mimes et était généralement utilisé avec l'API JavaMail. Ce framework permet d'associer des actions à des types mimes.
La liste des nouveaux packages de Java 6 comprend :
java.text.spi |
|
java.util.spi |
|
javax.activation |
Activation Framework |
javax.annotation |
Traitement des annotations |
javax.jws |
Support des services web |
javax.jws.soap |
support SOAP |
javax.lang.model.* |
|
javax.script |
Support des moteurs de scripting |
javax.tools |
Accès à certains outils notamment le compilateur |
javax.xml.bind.* |
JAXB |
javax.xml.crypto.* |
Cryptographie avec XML |
javax.xml.soap |
Support des messages SOAP |
javax.xml.stream.* |
API Stax |
javax.xml.ws.* |
API JAX-WS |
Une base de données nommée JavaDB est ajoutée au JDK 6.0 : c'est une version de la base de données Apache Derby.
En attendant la version 7, Sun a proposé plusieurs mises à jour de la plate-forme Java SE. Ces miseq sà jour concernent :
Deux de ces mises à jour sont particulièrement importantes : update 10 et 14.
Cette mise à jour contient des corrections de bugs.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u1.html
Cette mise à jour contient des corrections de bugs et une nouvelle version de la base de données embarquée Java DB.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u2.html
Cette mise à jour contient des corrections de bugs.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u3.html
Cette mise à jour contient des corrections de bugs et la version 10.3 de Java DB.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u4.html
Cette mise à jour contient des corrections de bugs et la possibilité d'enregistrer le JDK.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u5.html
Depuis la version 6u5 de Java, le programme d'installation du JDK propose à la fin la possibilité d'enregistrer le JDK.

Il suffit de cliquer sur le bouton « Product Registration Information » pour obtenir des informations sur le processus d'enregistrement du produit.
Lors du clic sur le bouton « Finish », le processus d'enregistrement collecte les informations sur le JDK installé et sur le système hôte. Ces informations sont envoyées via une connection http sécurisée sur le serveur Sun Connection.
Le navigateur s'ouvre sur la page d'enregistrement du JDK.

Il faut utiliser son compte SDN (Sun Developer Network) pour se logguer et afficher la page « Thank You ».

Il est possible d'enregistrer son JDK en ouvrant la page register.html situé dans le répertoire d'installation du JDK.
En plus du JDK, plusieurs autres produits de Sun Connection peuvent être enregistrés comme GlassFish, Netbeans, ...
Sun Connection propose un service gratuit nommé Inventory Channel qui permet de gérer ses produits enregistrés.
Cette mise à jour contient des corrections de bugs.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u6.html
Cette mise à jour contient des corrections de bugs et l'outil Java Visual VM.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u7.html
Le numéro de version interne complet est build 1.6.0_07-b06. Le numéro de version externe est 6u7.
| Exemple : |
C:\>java -version java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing) |
Cette mise à jour qui a porté le nom Java Update N ou Consumer JRE est très importante car elle apporte de grandes évolutions notamment pour le support des applications de type RIA.
Elle contient :
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u10.html
Le plug-in pour les navigateurs a été entièrement réécrit notamment pour permettre une meilleure exécution des applets, des applications Java Web Start et des applications RIA en Java FX.
Cette mise à jour ne contient que des corrections de bugs et des patchs de sécurité.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u11.html
La version externe est Java 6u11, le numéro de build est 1.6.0_11-b03.
Cette mise à jour contient
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u12.html
La version externe est Java 6u12, le numéro de build est 1.6.0_12-b04.
Cette mise à jour contient des corrections de bugs.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u13.html
La version externe est Java 6u13, le numéro de build est 1.6.0_13-b03.
L'installeur propose par défaut l'installation de la barre d'outils de Yahoo.
Cette mise à jour contient
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u14.html
La version externe est Java 6u14, le numéro de build est 1.6.0_14-b08.
Cette mise à jour ne contient que des corrections de bugs et patchs de sécurité.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u15.html
La version externe est Java 6u15, le numéro de build est 1.6.0_15-b03.
Cette mise à jour ne contient que des corrections de bugs.
La liste complète est consultable à l'url : http://java.sun.com/javase/6/webnotes/6u16.html
La version externe est Java 6u16, le numéro de build est 1.6.0_16-b01.
La prochaine version de Java (la version 7) porte le nom de code Dolphin. Cette version sera la première distribuée sous la licence GPL 2. Elle devrait être diffusée en 2010.
Le site officiel de cette version est à l'url https://jdk7.dev.java.net/
Le site http://java.net/ est le portail des projets open source en Java.
Au fur et à mesure des nouvelles versions de Java, le nombre de packages et de classes s'accroît :
Java 1.0 |
Java 1.1 |
Java 1.2 |
J2SE 1.3 |
J2SE 1.4 |
J2SE 5.0 |
Java SE 6 |
|
| Nombre de packages | 8 |
23 |
59 |
76 |
135 |
166 |
202 |
| Nombre de classes | 201 |
503 |
1520 |
1840 |
2990 |
3280 |
3780 |
Sun fourni un certain nombre d'API supplémentaires qui ne sont pas initialement fournies en standard dans le JDK. Ces API sont intégrées au fur et à mesure de l'évolution de Java.
| Extension | Description |
| JNDI | Java Naming and directory interface Cet API permet d'unifier l'accès à des ressources. Elle est intégrée à Java 1.3 |
| Java mail | Cette API permet de gérer des emails. Elle est intégrée à la plateforme J2EE. |
| Java 3D | Cette API permet de mettre en oeuvre des graphismes en 3 dimensions |
| Java Media | Cette API permet d'utiliser des composants multimédia |
| Java Servlets | Cette API permet de créer des servlets (composants serveurs). Elle est intégrée à la plateforme J2EE. |
| Java Help | Cette API permet de créer des aides en ligne pour les applications |
| Jini | Cette API permet d'utiliser Java avec des appareils qui ne sont pas des ordinateurs |
| JAXP | Cette API permet le parsing et le traitement de document XML. Elle est intégré à Java 1.4 |
Cette liste n'est pas exhaustive.
La communauté Java est très productive car elle regroupe :
Ainsi l'ensemble des API et des outils utilisables est énorme et évolue très rapidement. Les tableaux ci dessous tentent de recenser les principaux par thème.
|
J2SE 1.4
|
Les outils de Sun
|
Les outils libres (les plus connus)
|
| Les autres API | ||||||||||||||||||||||||||||||||||||||||
| Données | Web | Entreprise | XML | Divers | ||||||||||||||||||||||||||||||||||||
|
|
|
Services Web
|
|
||||||||||||||||||||||||||||||||||||
| Les API de la communauté open source | ||||||||||||||||||||||
Données
|
Web
|
Entreprise
|
XML
|
Divers
|
||||||||||||||||||
Il ne faut pas confondre Java et JavaScript. JavaScript est un langage développé par Netscape Communications.
La syntaxe des deux langages est très proche car elles dérivent toutes les deux du C++.
Il existe de nombreuses différences entre les deux langages :
| Java | Javascript | |
| Auteur | Développé par Sun Microsystems | Développé par Netscape Communications |
| Format | Compilé sous forme de byte-code | Interprété |
| Stockage | Applet téléchargé comme un élément de la page web | Source inséré dans la page web |
| Utilisation | Utilisable pour développer tous les types d'applications | Utilisable uniquement pour "dynamiser" les pages web |
| Exécution | Exécuté dans la JVM du navigateur | Exécuté par le navigateur |
| POO | Orienté objets | Manipule des objets mais ne permet pas d'en définir |
| Typage | Fortement typé | Pas de contrôle de type |
| Complexité du code | Code relativement complexe | Code simple |
Le JDK et la documentation sont librement téléchargeables sur le site web de Sun : http://java.sun.com
Pour installer le JDK 1.3 sous Windows 9x, il suffit de télécharger et d'exécuter le programme : j2sdk1_3_0-win.exe
Le programme commence par désarchiver les composants.

Le programme utilise InstallShield pour guider et réaliser l'installation.

L'installation vous souhaite la bienvenue et vous donne quelques informations d'usage.

L'installation vous demande ensuite de lire et d'approuver les termes de la licence d'utilisation.

L'installation vous demande le répertoire dans lequel le JDK va être installé. Le répertoire proposé par défaut est pertinent car il est simple.

L'installation vous demande les composants à installer :

L'installation se poursuit par la copie des fichiers et la configuration du JRE.
L'archive contient la documentation sous forme d'arborescence dont la racine est jdk1.3\docs.

Si le répertoire par défaut a été utilisé lors de l'installation, il suffit de décompresser l'archive à la racine du disque C:\.

Il peut être pratique de désarchiver le fichier dans un sous répertoire, ce qui permet de réunir plusieurs versions de la documentation.
Pour un bon fonctionnement du JDK, il est recommandé de paramétrer correctement deux variables systèmes : la variable PATH qui définit les chemins de recherche des exécutables et la variable CLASSPATH qui définit les chemins de rechercher des classes et bibliothèques Java.
Pour configurer la variable PATH, il suffit d'ajouter à la fin du fichier autoexec.bat :
| Exemple : |
SET PATH=%PATH%;C:\JDK1.3\BIN |
Attention : si une version antérieure du JDK était déjà présente, la variable PATH doit déjà contenir un chemin vers les utilitaires du JDK. Il faut alors modifier ce chemin sinon c'est l'ancienne version qui sera utilisée. Pour vérifier la version du JDK utilisée, il suffit de saisir la commande java -version dans une fenêtre DOS.
La variable CLASSPATH est aussi définie dans le fichier autoexec.bat. Il suffit d'ajouter une ligne ou de modifier la ligne existante définissant cette variable.
| Exemple : |
SET CLASSPATH=C:\JAVA\DEV; |
Dans un environnement de développement, il est pratique d'ajouter le . qui désigne le répertoire courant dans le CLASSPATH surtout lorsque l'on n'utilise pas d'outils de type IDE. Attention toutefois, cette pratique est fortement déconseillée dans un environnement de production pour ne pas poser des problèmes de sécurité.
Il faudra ajouter par la suite les chemins d'accès aux différents packages requis par les développements afin de les faciliter.
Pour que ces modifications prennent effet dans le système, il faut redémarrer Windows ou exécuter ces deux instructions sur une ligne de commande DOS.
Le répertoire dans lequel a été installé le JDK contient plusieurs répertoires. Les répertoires donnés ci-après sont ceux utilisés en ayant gardé le répertoire par défaut lors de l'installation.
| Répertoire | Contenu |
| C:\jdk1.3 | Le répertoire d'installation contient deux fichiers intéressants : le fichier readme.html qui fourni quelques informations et des liens web et le fichier src.jar qui contient le source Java de nombreuses classes. Ce dernier fichier n'est présent que si l'option correspondante a été cochée lors de l'installation. |
| C:\jdk1.3\bin | Ce répertoire contient les exécutables : le compilateur javac, l'interpréteur java, le débuggeur jdb et d'une façon générale tous les outils du JDK. |
| C:\jdk1.3\demo | Ce répertoire n'est présent que si l'option nécessaire a été cochée lors de l'installation. Il contient des applications et des applets avec leur code source. |
| C:\jdk1.3\docs | Ce répertoire n'est présent que si la documentation a été décompressée. |
| C:\jdk1.3\include et C:\jdk1.3\include-old | Ces répertoires ne sont présents que si les options nécessaires ont été cochées lors de l'installation. Il contient des fichiers d'en-tête C (fichier avec l'extension .H) qui permettent de faire interagir du code Java avec du code natif |
| C:\jdk1.3\jre | Ce répertoire contient le JRE : il regroupe le nécessaire à l'exécution des applications notamment le fichier rt.jar qui regroupe les API. Depuis la version 1.3, le JRE contient deux machines virtuelles : la JVM classique et la JVM utilisant la technologie Hot spot. Cette dernière est bien plus rapide et c'est elle qui est utilisée par défaut. Les éléments qui composent le JRE sont séparés dans les répertoires bin et lib selon leur nature. |
| C:\jdk1.3\lib | Ce répertoire ne contient plus que quelques bibliothèques notamment le fichier tools.jar. Avec le JDK 1.1 ce répertoire contenait le fichier de la bibliothèque standard. Ce fichier est maintenant dans le répertoire JRE. |
Télécharger sur le site java.sun.com et exécuter le fichier j2sdk-1_4_2_03-windows-i586-p.exe.

Un assistant permet de configurer l'installation au travers de plusieurs étapes :
Même si ce n'est pas obligatoire pour fonctionner, il est particulièrement utile de configurer deux variables systèmes : PATH et CLASSPATH.
Dans la variable PATH, il est pratique de rajouter le chemin du répertoire bin du JDK installé pour éviter à chaque appel des commandes du JDK d'avoir à saisir leur chemin absolu.
Dans la variable CLASSPATH, il est pratique de rajouter les répertoires et les fichiers .jar qui peuvent être nécessaire lors des phases de compilation ou d'exécution, pour éviter d'avoir à les préciser à chaque fois.
Il faut télécharger sur le site de Sun et exécuter le fichier j2sdk-1_5_0-windows-i586.exe

Un assistant guide l'utilisateur pour l'installation de l'outil.
Pour faciliter l'utilisation des outils du J2SE SDK, il faut ajouter le chemin du répertoire bin contenant ces outils dans la variable Path du système.

Il est aussi utile de définir la variable d'environnement JAVA_HOME avec comme valeur le chemin d'installation du SDK.
La première chose est de décompresser le fichier téléchargé sur le site de Sun en exécutant le fichier dans un shell.
| Exemple : |
[java@localhost tmp]$ sh j2sdk-1_4_2_06-linux-i586-rpm.bin
Sun Microsystems, Inc.
Binary Code License Agreement
for the
JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD
EDITION, VERSION 1.4.2_X
SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE
SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION
THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY
CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS
(COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT
...
Do you agree to the above license terms? [yes or no]
yes
Unpacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.40 of 28 November 1998, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: j2sdk-1_4_2_06-linux-i586.rpm
Done.
[java@localhost tmp]$ |
La décompression créé un fichier j2sdk-1_4_2_06-linux-i586.rpm. Pour installer ce package, il est nécessaire d'être root sinon son installation est impossible.
| Exemple : |
[java@localhost eclipse3]$ rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm erreur: cannot open lock file ///var/lib/rpm/RPMLOCK in exclusive mode erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm [java@localhost eclipse3]$ su root Password: [root@localhost eclipse3]# rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm Préparation... ########################################### [100%] 1:j2sdk ########################################### [100%] [root@localhost eclipse3]# |
Le JDK a été installé dans le répertoire /usr/java/j2sdk1.4.2_06
Pour permettre l'utilisation par tous les utilisateurs du système, le plus simple est de créer un fichier de configuration dans le répertoire /etc/profile.d
Créez un fichier java.sh
| Exemple : le contenu du fichier java.sh |
[root@localhost root]# cat java.sh export JAVA_HOME="/usr/java/j2sdk1.4.2_06" export PATH=$PATH:$JAVA_HOME/bin |
Modifiez ces droits pour permettre son exécution
| Exemple : |
[root@localhost root]# chmod 777 java.sh [root@localhost root]# source java.sh |
Si kaffe est déjà installé sur le système il est préférable de mettre le chemin vers le JDK en tête de la variable PATH
| Exemple : |
[root@localhost root]# java
usage: kaffe [-options] class
Options are:
-help Print this message
-version Print version number
-fullversion Print verbose version info
-ss <size> Maximum native stack size
[root@localhost root]# cat java.sh
export JAVA_HOME="/usr/java/j2sdk1.4.2_06"
export PATH=$JAVA_HOME/bin:$PATH |
Pour rendre cette modification permanente, il faut copier le fichier java.sh dans le répertoire /etc/profile.d
| Exemple : |
[root@localhost root]# cp java.sh /etc/profile.d |
Ainsi tous utilisateurs qui ouvriront une nouvelle console Bash aura ces variables d'environnements positionnées pour utiliser les outils du JDK.
| Exemple : |
[java@localhost java]$ echo $JAVA_HOME /usr/java/j2sdk1.4.2_06 [java@localhost java]$ java -version java version "1.4.2_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03) Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode) [java@localhost java]$ |
L'installation de la documentation se fait en décompressant l'archive dans un répertoire du système par exemple /usr/java.
| Exemple : |
[root@localhost local]# mv j2sdk-1_4_2-doc.zip /usr/java [root@localhost java]# ll total 33636 drwxr-xr-x 8 root root 4096 oct 16 22:18 j2sdk1.4.2_06/ -rwxr--r-- 1 root root 34397778 oct 18 23:39 j2sdk-1_4_2-doc.zip* [root@localhost java]# unzip -q j2sdk-1_4_2-doc.zip [root@localhost java]# ll total 33640 drwxrwxr-x 8 root root 4096 aoû 15 2003 docs/ drwxr-xr-x 8 root root 4096 oct 16 22:18 j2sdk1.4.2_06/ -rwxr--r-- 1 root root 34397778 oct 18 23:39 j2sdk-1_4_2-doc.zip* [root@localhost java]# rm j2sdk-1_4_2-doc.zip rm: détruire fichier régulier `j2sdk-1_4_2-doc.zip'? o [root@localhost java]# ll total 8 drwxrwxr-x 8 root root 4096 aoû 15 2003 docs/ drwxr-xr-x 8 root root 4096 oct 16 22:18 j2sdk1.4.2_06/ [root@localhost java]# |
Il est possible pour un utilisateur de créer un raccourci sur le bureau KDE en utilisant le menu contextuel créer un « nouveau/fichier/lien vers une url ... »

Un double clic sur la nouvelle icône permet d'ouvrir directement Konqueror avec l'aide en ligne de l'API.

|
|
|
|
|
|
Développons en Java v 1.20 | ||
| Copyright (C) 1999-2009 Jean-Michel DOUDOUX |