IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Chapitre 1 : Présentation

13/10/2002

Par Jean-Michel Doudoux (autres articles)
 


1. Présentation
1.1. Les caractéristiques
1.2. Bref historique de Java
1.3. Les différentes éditions de Java
1.3.1. Java 1.0
1.3.2. Java 1.1
1.3.3. Java 1.2
1.3.4. Java 1.3
1.3.5. Java 1.4 (nom de code Merlin)
1.3.6. Java 1.5 (nom de code Tiger)
1.3.7. Le résumé des différentes versions
1.3.8. Les extensions du JDK
1.4. Un rapide tour d'horizon des API et de quelques outils
1.5. Les différences entre Java et JavaScript
1.6. L'installation du JDK
1.6.1. L'installation de la version 1.3 DU JDK de Sun sous Windows 9x
1.6.2. L'installation de la documentation de java 1.3 sous Windows
1.6.3. La configuration des variables système sous Windows
1.6.4. Les éléments du JDK 1.3 sous Windows


1. Présentation


Java est un langage de programmation à usage général, évolué et orienté objet dont la syntaxe est proche du C. Il existe 2 types de programmes en 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 de celui ci.


1.1. Les caractéristiques


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écuté 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 les même résutlats sut toutes les machines disposant d'une JVM.
Java 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), '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 tel conversion doit être réalisée, le développeur doit obligatoirement utiliser un cast ou une méthode statique 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ûr 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 sous soumis aux restrictions suivantes dans la version 1.0 de Java : aucun programme ne peut ouvrir, lire, écrire ou effacer un fichier sur le système de l'utilisateur aucun programme ne peut lancer un autre programme sur le système de l'utilisateur toute fenêtre créée par le programme est clairement identifiée comme étant une fenêtre Java, ce qui interdit par exemple la création d'une fausse fenêtre demandant un mot de passe les programmes ne peuvent pas se connecter à d'autres sites Web que celui dont ils proviennent.
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.
Les programmes Java exécutés localement sont des applications, ceux qui tournent sur des pages Web sont des applets.

Les différences entre une applet et une application sont :

  • les applets n'ont pas de bloc main() : la méthode main() est appelée par la machine virtuelle pour exécuter une application.
  • les applets ne peuvent pas être testées avec l'interpréteur mais doivent être intégrées à une page HTML, elle même visualisée avec un navigateur sachant gérer les applets Java, ou testées avec l'applet viewer.


1.2. Bref historique de Java


Année Evènements
1995 mai : premier lancement commercial
1996 janvier : JDK 1.0
1996 septembre : lancement du JDC
1997 février : JDK 1.1
1998 décembre : lancement de J2SE et du JCP
1999 décembre : lancement J2EE
2000 mai : J2SE 1.3
2002 J2SE 1.4

1.3. Les différentes éditions de Java


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 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 ou des applications java doivent être exécutées.

Depuis sa version 1.2, Java a été renommé Java 2. Les numéros de versions 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.

Le JRE a été renommé J2RE (Java 2 Runtime Edition).

Trois éditions de Java existent :

  • J2ME : Java 2 Micro Edition
  • J2SE : Java 2 Standard Edition
  • J2EE : Java 2 Entreprise Edition

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 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 les classes fournies. Le tableau ci dessous résume la taille des différents composants selon leur version pour la plateforme Windows.

  Version 1.0 Version 1.1 Version 1.2 Version 1.3 Version 1.4
JDK compressé   8,6 Mo 20 Mo 30 Mo 47 Mo
JDK installé       53 Mo 59 Mo
JRE compressé     12 Mo 7 Mo  
JRE installé       35 Mo 40 Mo
Documentation compressée     16 Mo 21 Mo 30 Mo
Documentation décompressée     83 Mo 106 Mo 144 Mo

1.3.1. Java 1.0


Cette première version est lancée officiellement en mai 1995.


1.3.2. Java 1.1


Cette version du JDK est annoncée officiellement en mars 1997. Elle apporte de nombreuses améliorations et d'importantes fonctionnalités nouvelles dont :

  • les java beans
  • les fichiers JAR
  • RMI pour les objets distribués
  • la sérialisation
  • l'introspection
  • JDBC pour l'accès aux données
  • les classes internes
  • l'internationalisation
  • un nouveau modèle de sécurité permettant notamment de signer les applets
  • JNI pour l'appel de méthodes natives
  • ...


1.3.3. Java 1.2


Cette version du JDK est lancée fin 1998. Elle apporte de nombreuses améliorations et d'importantes fonctionnalités nouvelles dont :

  • un nouveau modèle de sécurité basé sur les policy
  • les JFC sont incluses dans le JDK (Swing, Java2D, accessibility, drag & drop ...)
  • JDBC 2.0
  • les collections
  • support de CORBA
  • un compilateur JIT est inclus dans le JDK
  • de nouveaux format audio sont supportés
  • ...

Java 2 se décline en 3 éditions différentes qui regroupent des APIs par domaine d'applications :

  • Java 2 Micro Edition (J2ME) : contient le nécessaire pour développer des applications capables de fonctionner dans des environnements limités tels que les assistants personnels (PDA), les téléphones portables ou les systèmes de navigation embarqués
  • Java 2 Standard Edition (J2SE) : contient le nécessaire pour développer des applications et des applets. Cette édition reprend le JDK 1.0 et 1.1.
  • Java 2 Enterprise Edition (J2EE) : contient en plus un ensemble de plusieurs API permettant le développement d'applications destinées aux entreprises tel que JDBC pour l'accès aux bases de données, EJB pour développer des composants orientés métiers, Servlet / JSP pour générer des pages HTML dynamiques, ...

Le but de ces trois éditions est de proposer une solution à base java quelque soit le type de développement à réaliser.


1.3.4. Java 1.3


Cette version du JDK apporte de nombreuses améliorations notamment sur les performances et des fonctionnalités nouvelles dont :

  • JNDI est inclus dans le JDK
  • hotspot est inclus dans la JVM
  • ...

La rapidité d'exécution a été grandement améliorée dans cette version.


1.3.5. Java 1.4 (nom de code Merlin)


Cette version du JDK, lancée début 2002, apporte de nombreuses améliorations notamment sur les performances et des fonctionnalités nouvelles dont :

  • JAXP est inclus dans le JDK pour le support de XML
  • JDBC version 3.0
  • new I/O API pour compléter la gestion des entrée/sortie
  • logging API pour la gestion des logs applicatives
  • une API pour utiliser les expressions régulières
  • une api pour gérer les préférences utilisateurs
  • JAAS est inclus dans le JDK pour l'authentification
  • un ensemble d'API pour utiliser la cryptographie
  • l'outils java WebStart
  • ...

Cette version ajoute un nouveau mot clé au langage pour utiliser les assertion : assert.


1.3.6. Java 1.5 (nom de code Tiger)


Cette prochaine version du J2SE est en cours de spécification par le JCP sous la JSR 176. Elle devrait intégrer un certain nombre de JSR dans le but de simplifier les développements en Java.


1.3.7. Le résumé des différentes versions


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 Java 1.3 Java 1.4
Nombre de de packages 8 23 59 76 135
Nombre de classes 201 503 1520 1840 2990

1.3.8. Les extensions du JDK


Sun fourni un certains nombres 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 a java 1.3
Java mail Cet API permet de gérer des emails. Elle est intégrée à la plateforme J2EE.
Java 3D Cet API permet de mettre en oeuvre des graphismes en 3 dimensions
Java Media Cet API permet d'utiliser des composants multimédia
Java Servlets Cet API permet de créer des servlets (composants serveurs). Elle est intégrée a la plateforme J2EE.
Java Help Cet API permet de créer des aide en ligne pour les applications
Jini Cet API permet d'utiliser java avec des appareils qui ne sont pas des ordinateurs
JAXP Cet API permet le parsing et le traitement de document XML. Elle est intégrée à java 1.4
Cette liste n'est pas exhaustive.


1.4. Un rapide tour d'horizon des API et de quelques outils


La communauté Java est très productive car elle regroupe :

  • Sun, le fondateur de Java
  • le JCP (Java Community Process) : processus de traitement des évolutions de Java dirigé par Sun. Chaque évolution est traitée dans une JSR (Java Specification Request) par un groupe de travail constitué de différents acteurs du monde Java
  • des acteurs commerciaux dont tous les plus grands acteurs du monde informatique excepté Microsoft
  • la communauté libre qui produit un très grand nombre d'API et d'outils pour Java

J2SE 1.4
Java Bean RMI IO Applet
Reflfexion Collection Logging AWT
Net (Réseau) Preferences Security JFC
Internationalisation Exp régulière   Swing
Les outils de Sun
Jar Javadoc Java Web Start JWSDK
Les outils libres (les plus connus)
Jakarta Tomcat Jakarta Ant JBoss Apache Axis
JUnit Eclipse    
Les autres API
Données Web Entreprise XML Divers
JDBC
JDO
Servlets
JSP
JSTL
JSF
Java Mail
JNDI
EJB
JMS
JMX
JTA
RMI-IIOP
Java IDL
JINI
JXTA
JAXP
SAX
DOM
JAXR
JAXM
JAX-RPC
SAAJ
JAXB
JAI
JAAS
JCA
JCE
Java Help
JMF
JSSE
Java Speech
Java 3D
Les API de la communauté open source
Données Web Entreprise XML Divers
OJB
Cator
Hybernate
Jakarta Struts
Webmacro
Expresso
Barracuda
Turbine
Apache Xerces
Apache Xalan
Apacha Axis
JDOM
DOM4J
Jakarta Log4j
Jakarta regexp

1.5. Les différences entre Java et JavaScript


Il ne faut pas confondre Java et JavaScript. JavaScript est un langage développé par Netscape Communications.

La syntaxe des deux langages est 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
Execution Executé dans la JVM du navigateur Executé 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
Complèxité du code Code relativement complexe Code simple

1.6. L'installation du JDK


Le JDK et la documentation sont librement téléchargeables sur le site web de Sun : http://java.sun.com


1.6.1. L'installation de la version 1.3 DU JDK de Sun sous Windows 9x


Pour installer le JDK 1.3 sous Windows 9x, il suffit d'exécuter le programme : j2sdk1_3_0-win.exe

Le programme commence par désarchiver les composants.

Le programme utilise InstallShield pour 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 :

  • Program Files est obligatoire pour une première installation
  • Les interfaces natives ne sont utiles que pour réaliser des appels de code natif dans les programmes java
  • Les démos sont utiles car ils fournissent quelques exemples
  • les sources contiennent les sources de la plupart des classes java écrites en java. Attention à l'espace disque nécessaire à cet élément

L'installation se poursuit par la copie des fichiers et la configuration du JRE


1.6.2. L'installation de la documentation de java 1.3 sous Windows


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, ça permet de réunir plusieurs versions de la documentation.


1.6.3. La configuration des variables système sous Windows


Pour un bon fonctionnement du JDK, il faut 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 recherche des classes 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é, 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 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.

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.


1.6.4. Les éléments du JDK 1.3 sous Windows


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ésent 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 d'inclure du code C dans le source java.
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 celle 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.