Le langage Java fut développé par Sun Microsystems en 1991 dans le cadre du projet Green, groupe de recherche spécialisé dans le développement de logiciels conçus pour contrôler des appareils électroniques. Les chercheurs souhaitaient développer un langage de programmation qui permette de contrôler les appareils du futur : des téléviseurs interactifs, des grillepains interactifs, des systèmes d'éclairage intelligents, etc. Les chercheurs de Sun voulaient aussi que ces appareils soient capables de communiquer entre eux, de telle sorte que la tondeuse à gazon puisse indiquer au mixeur de vous avertir dès que les voisins sont rentrés du travail et qu'ils sont de nouveau en train de bronzer dans le jardin. Pour mettre en pratique les résultats de leurs travaux, les chercheurs du projet Green développèrent un prototype appelé Star7, gadget qui ressemblait à une télécommande de téléviseur, capable de communiquer avec ses semblables. L'idée de départ était de développer le système d'exploitation de la télécommande Star7 en C++, langage de programmation orienté objet développé par Bjarne Stroustrup, qui est aujourd'hui l'un des langages les plus utilisés. Toutefois, l'un des membres du projet Green, James Gosling, en eut rapidement assez des contraintes que posait C++. Il s'enferma dans son bureau et conçut un nouveau langage mieux adapté aux spécificités de Star7. Le langage fut d'abord nommé Oak, mais le groupe Green s'aperçut ensuite que ce nom était déjà utilisé dans le domaine de l'informatique. Etant destiné à être utilisé avant tout avec des appareils électroniques, et non avec des PC modernes, Java se devait d'être un langage peu encombrant, performant et facile à porter pour un large éventail d'appareils. Il se devait aussi d'être fiable. Certes, le public a appris à s'accommoder d'un logiciel qui plante de temps en temps alors qu'il occupe 5 Mo d'espace disque, mais il est beaucoup plus difficile de rester indifférent face à un grille pain mal programmé qui a la fâcheuse habitude de calciner le pain au lieu de le faire dorer. Bien que Java ait été conçu initialement comme un outil destiné aux appareils électriques et au développement d'une télévision interactive, les caractéristiques qui le rendaient intéressant pour le standard Star7 le rendirent aussi intéressant pour le World Wide Web :
Afin de mettre en évidence le potentiel de Java et d'éviter que le fruit de leurs recherches finisse dans un placard, les membres du projet Green créèrent en 1994 un navigateur Web capable de faire fonctionner des applets Java. Ce navigateur mit en évidence deux choses à propos de Java : ce qu'il offrait au World Wide Web et le type de programmes que Java permettait de créer. Les programmeurs Patrick Naughton et Jonathan Peayne utilisèrent Java pour créer ce navigateur, initialement appelé WebRunner, mais qui fut rebaptisé HotJava.
Bien que Java et le navigateur HotJava soient parvenus à attirer l'attention de la communauté du Web, le langage ne commença vraiment à s'imposer que quand Netscape, la première société à s'intéresser concrètement à ce langage, signa au mois d'août 1995 un contrat de licence l'autorisant à l'utiliser. Marc Andreesen, cadre dirigeant de Netscape et multimillionnaire, fut l'un des premiers décideurs étrangers à Sun à percevoir l'intérêt de Java, et il gratifia ce langage d'un soutien marqué lors de la conférence Java0ne de mai 1996. "Java est une opportunité très intéressante pour nous tous", déclara t-il aux participants. Peu après la sortie publique de la première version de Java, la société Sun cibla ses efforts de développement pour Java et elle recruta plusieurs centaines de nouveaux employés pour continuer à développer le langage.
Java est surtout connu pour sa capacité à fonctionner sur des pages du World Wide Web. Les navigateurs Web Navigator de Netscape et Internet Explorer de Microsoft, permettent de télécharger un programme Java sur le Web et de le faire fonctionner localement sur le système de l'utilisateur du Web.
Ces programmes, appelés Applets, se présentent comme des images sur une page Web. Contrairement aux images, toutefois, les applets peuvent être interactives - c'est-à-dire admettre des données entrées par l'utilisateur, y répondre et présenter du contenu capable d'évoluer en permanence. Les applets peuvent servir à créer des animations, des figures, des jeux, des formulaires capables de réagir à des informations entrées par l'utilisateur, ou tout autre type d'effets interactifs sur une même page Web, au milieu d'éléments de texte et de graphismes.
La Figure suivante illustre une Applet
fonctionnant sous Internet Explorer.
Java permet à une personne de jouer contre trois adversaires informatiques dans
une partie de dominos.
Les applets peuvent être téléchargées depuis le World Wide Web de la même manière que des pages HTML, des images ou n'importe quel élément de site Web. Si le navigateur Web utilisé est équipé pour traiter les applets Java, l'applet téléchargée commence à s'exécuter dès qu'elle a fini de se télécharger.
Les applets sont écrites en langage Java, compilées sous une forme qui leur permet d'être exécutées ensuite comme programmes, puis placées sur un serveur Web. La plupart des serveurs Web sont capables de distribuer des fichiers Java sans qu'il faille modifier leur configuration.
Les applets Java sont presque toutes écrites en Java 1.0.2, la première version vraiment populaire de ce langage, car les principaux fabricants de navigateurs ont tardé à rendre leurs produits compatibles avec les applets Java 1.1 et Java 2. A l'heure actuelle, les principaux navigateurs comme Netscape et Internet Explorer utilisent la version Java 1.1.
Les utilisateurs du Web dont le navigateur est incompatible avec Java peuvent voir du texte, une image, ou même rien du tout à la place d'une applet Java, suivant que le concepteur de la page Web a prévu un élément de substitution ou non pour l'applet Java.
Contrairement aux ActiveX, Java dispose d'un modèle de sécurité avec une granularité élevée. Le système garantit à l'utilisateur un niveau de protection élevé pour son système.
Le poste client est totalement sécurisé en utilisant les Applets
D'autre part, les applets java sont téléchargées dynamiquement en même temps que la page qui les référence avant d'être lancées sous le contrôle du navigateur Web. Ce téléchargement en mémoire vive est effectué à chaque visite de la page. Rien n'est installé physiquement sur le poste client. Ce mode de fonctionnement diminue les performances et provoque un démarrage plus long par rapport à un contrôle ActiveX, mais il évite toute pollution du système par du code non désiré par l'utilisateur.
Si les applets Java constituent sans doute l'une des applications les plus répandues de Java, elles ne constituent que l'une des nombreuses possibilités d'utilisation que ce langage offre. Comme Visual C++, Visual Basic et Delphi, Java est un langage robuste qui peut être exploité pour développer un large éventail de programmes utilisant une interface utilisateur graphique, pouvant être appliqués en réseau et se connecter à des bases de données, et offrant d'autres fonctionnalités toutes plus sophistiquées les unes que les autres. Par opposition aux applets, les programmes Java ne fonctionnant pas sous un navigateur Web sont appelés applications.
Java est un langage indépendant de toute plate-forme, ce qui signifie qu'un même programme peut fonctionner sur différentes plates-formes et sous différents systèmes d'exploitation. C'est là l'un des principaux atouts de Java par rapport à d'autres langages de programmation.
Quand vous compilez un programme écrit en C ou dans la plupart des autres langages, le compilateur traduit le fichier source en code machine - des instructions spécifiques au processeur que votre ordinateur utilise. Si vous compilez le code source sur un ordinateur reposant sur un processeur Intel, le programme résultant fonctionnera sur d'autres ordinateurs reposant eux aussi sur un processeur Intel, mais il ne fonctionnera en aucun cas sur des Macintosh, sur des Commodore VIC-20, ou sur d'autres types d'ordinateurs. Pour utiliser le même programme sur une autre plate-forme, vous devrez transférer le code source vers la nouvelle plate-forme et le recompiler pour produire du code machine spécifique à ce système. Le plus souvent, il faut modifier le code source avant de le compiler sur la nouvelle machine, compte tenu des différences que présentent les différents ordinateurs au niveau de leur processeur et d'autres facteurs (notamment l'interface graphique qui est propre au système d'exploitation "Interface Propiétaire").
La Figure suivante montre le résultat d'un système dépendant
d'une plate-forme précise :
plusieurs programmes exécutables doivent être réalisés pour les différents systèmes.
Programmes compilés traditionnels
Si les programmes Java sont indépendants de toute plate-forme, c'est parce qu'ils reposent sur une machine virtuelle, qui est une sorte d'ordinateur installé à l'intérieur de l'ordinateur physique dont se sert l'utilisateur. Cette machine virtuelle prend les programmes Java compilés et convertit leurs instructions en commandes intelligibles pour un système d'exploitation. Le même programme compilé, qui se présente sous un format appelé pseudo-code, peut fonctionner sur n'importe quelle plate-forme et sous n'importe quel système d'exploitation possédant une machine Java virtuelle.
Le pseudo-code est similaire au code machine produit par d'autres langages, mais il n'est pas propre à un processeur donné. Il ajoute un niveau entre la source et le code machine.
Programmes multi-plates-formes Java.
On remarque que dans ce système, il faut qu'il y ait impérativement une machine virtuelle Java (JVM) pour chacune des plate-formes utilisées, ce qui est le cas pour la plupart des systèmes d'exploitations récents. Le cas échéant, il est possible de récupérer la machine virtuelle Java gratuitement sur le site de "Sun micosystems".
La machine virtuelle Java est aussi appelée interpréteur Java.
Le µprocesseur à l'intérieur
d'un ordinateur ne peut comprendre que le code binaire pour effectuer ses opérations
élémentaires (code objet). La difficulté, c'est que le
programmeur ne comprend pas directement ce langage. il est donc judicieux d'utiliser
un langage qui soit proche de la pensée humaine (code source). Du coup,
il est évident qu'il est nécessaire d'avoir une traduction pour
passer d'un code à l'autre.
Soit on utilise une traduction définitive grâce à la compilation.
Le résultat obtenu est très performant au niveau de la rapidité
d'exécution (on utilise toutes les compétences du processeur)
au détriment de la portabilité puisque la compilation s'est effectuée
pour un processeur spécifique.
Soit on effectue la traduction au fur et à mesure de la lecture du code
source, on utilise pour cela un interpréteur.
on se rend compte qu'avec ce système, à chaque fois que l'on exécutera
le programme, il faudra relire le code source, ce qui donne, on l'imagine, de
très faible performances en terme de rapidité. Le langage Java
utilise les deux concepts.
Java est aussi indépendant de toute plate-forme au niveau de la source. Les programmes Java sont enregistrés sous forme de fichiers texte avant d'être compilés, et ces fichiers peuvent être créés sur n'importe quelle plate-forme supportant Java. Ainsi est il possible de créer un programme Java sur un Macintosh, puis de le compiler en code d'octets sur un ordinateur fonctionnant sous Windows 98.
La source, aussi appelée code source, est l'ensemble des instructions de programmation que le programmeur entre dans un éditeur de texte lorsqu'il crée un programme. Le code source est compilé en pseudo-code afin de pouvoir être exécuté par une machine virtuelle Java.
La machine virtuelle Java peut être trouvée à différents endroits. Pour les applets, elle est soit intégrée à un navigateur compatible Java, soit installée séparément et utilisable par le navigateur. Le programmeur d'applets n'a pas à se soucier de savoir si elle est présente sur l'ordinateur de l'utilisateur ou non.
Les applications Java, en revanche, ne peuvent fonctionner que sur un système sur lequel une machine virtuelle Java adéquate a été installée. Pour exécuter des applications Java 2 sur votre ordinateur, vous devrez donc d'abord installer la machine virtuelle correspondante.
Si vous êtes habitués à la façon dont les langages de programmation tels que Visual Basic et Delphi créent du code spécifique à une plate-forme, vous pouvez considérer que l'interpréteur de pseudo-code ajoute une couche non indispensable entre votre source et le code machine compilé.
Cela a des incidences sur les performances du système : les programmes Java s'exécutent plus lentement que les langages compilés dépendants d'une plate-forme donnée, telle le C. Et la différence de rapidité est l'un des premiers arguments que mettent en avant les détracteurs de Java. Certains outils de développement en Java incluent des compilateurs juste à temps, qui peuvent exécuter le pseudo-code Java à une vitesse beaucoup plus élevée.
Exemple d'application fonctionnant sur n'importe quelle plate-forme (GUI: Interface utilisateur Metal)
Le fait qu'un même fichier de pseudo-code puisse être exécuté sur plusieurs plates-formes est crucial pour l'utilisation de Java sur le World Wide Web, car le Web lui même est indépendant de toute plate-forme. De même que les fichiers HTML peuvent être lus sur n'importe quelle plate-forme, les applets Java peuvent être exécutées sur n'importe quelle plate-forme disposant d'un navigateur compatible Java.
Pour beaucoup de programmes Java de base, la rapidité n'est pas vraiment un problème. Néanmoins, si vous écrivez un programme qui nécessite une vitesse d'exécution supérieure à la vitesse que la machine virtuelle peut offrir, vous pouvez recourir à différentes solutions, qui consistent à :
Le gain de rapidité obtenu à l'aide de l'une de ces deux solutions se fera au détriment de la portabilité de Java. Une application qui utilise des appels Windows pour accéder au disque ne fonctionnera pas sur un Macintosh sans modifications préalables.
Le terme thread définit une tâche spécifique et indépendante généralement prise en charge par le système d'exploitation. Un thread peut être assimilé à une unité d'exécution de programme. Un thread est généralement matérialisé par une portion de code s'exécutant en parallèle des autres parties d'une application.
Evoluer dans un environnement réseau, sur le Web par exemple, engendre souvent la nécessité d'exécuter plusieurs tâches simultanément : jouer un son, produire une animation, exécuter une requête importante sur une base de données, etc. Java est nativement doté d'un ensemble complet de primitives de gestion du multitâche - ou multithreading - simplifiant grandement l'écriture de programmes s'appuyant sur ce type de fonctionnalités.
Java permet l'exécution dynamique du code grâce à son interpréteur. L'interpréteur Java exécute le bytecode et autorise le chargement de code additionnel à la volée. Cette caractéristique pourra particulièrement être mise à contribution dans le cadre des applications Internet et Intranet : des portions complètes de code seront chargées au fur et à mesure des besoins de l'application.
En outre, Java rend aujourd'hui possible le transport des objets entre différents programmes. Ce mécanisme puissant permet de décider de l'endroit où s'exécute le code lors du déroulement du programme et ouvre la porte à de vastes possibilités (optimisation, répartition de charge).
Java possède une importante bibliothèque de routines permettant de gérer les protocoles TCP/IP tels que HTTP et FTP. Les applications Java peuvent charger et accéder à des pages Web sur Internet via des URL avec la même facilité qu'elles accèdent à un fichier local sur le système.
Les fonctionnalités réseau de Java sont à la fois fiables et d'utilisation aisée. Toute personne ayant essayé de faire de la programmation pour Internet avec un autre langage se réjouira de la simplicité de Java lorsqu'il s'agit de mettre en oeuvre des tâches lourdes, comme l'ouverture d'une connexion avec un Socket. De plus, Java rend plus facile l'élaboration des scripts CGI (Common Cateway Interface), et un mécanisme élégant, nommé Servlet, augmente considérablement l'efficacité du traitement côté serveur, assuré par Java. De nombreux serveurs Web, parmi les plus courants, supportent les servlets. Le mécanisme d'invocation de méthode à distance (RMI) autorise la communication entre objets distribués.
Un principe tend à s'imposer de plus en plus dans le domaine des logiciels : celui de la réutilisabilité des composants. L'idée est en effet que les éléments d'un programme doivent pouvoir être utilisés avec plus d'un package logiciel.
Un composant logiciel est un morceau de logiciel isolé au sein
d'une structure discrète et facile à réutiliser.
.
Si vous développez les différentes parties d'un programme sous forme de composants parfaitement autonomes, vous devriez avoir la possibilité de réassembler ces composants pour créer d'autres programmes avec une plus grande efficacité de développement. Cette notion de réutilisabilité a, dans une certaine mesure, été empruntée au concept de chaîne de production, qui a connu son heure de gloire durant la révolution industrielle, bien avant l'ère de l'informatique moderne. Appliquée aux logiciels, cette idée consiste à ne construire qu'une seule fois des composants de petite taille, et à les réutiliser autant de fois que possible, en rationalisant ainsi l'ensemble du processus de développement.
Développement à deux étages par la conception de composants logiciels
L'obstacle le plus important à ce principe de réutilisabilité est sans doute la multiplicité et la disparité des microprocesseurs et des systèmes d'exploitation utilisés aujourd'hui. De nombreux efforts d'uniformisation ont été effectués dans le domaine des logiciels conçus sous forme de composants, mais ils ont toujours été limités par un système d'exploitation spécifique. Les architectures de composants MxVBX et OCX de Microsoft connaissent un grand succès dans le modèle des PC Intel, mais elles n'ont que peu contribué à combler l'écart existant entre les PC Intel et les autres plates-formes.
La technologie ActiveX de Microsoft, qui repose sur la technologie OCX, vise à Fournir une technologie de composants polyvalente compatible avec un large éventail de plates-formes. Toutefois, si l'on considère la dépendance qui lie la technologie ActiveX au code Windows 32 bits, il est indéniable que le problème de la dépendance vis-à-vis de la plateforme demeure entier.
Un certain nombre de technologies de composants existantes présentent également l'inconvénient d'avoir été développées dans un langage de programmation particulier ou pour un environnement de développement spécifique. De la même manière que la dépendance vis-à-vis de la plate-forme peut rendre des composants inexploitables au moment de l'exécution du programme, le fait de limiter le développement des composants à un langage de programmation ou un environnement de développement précis peut rendre les composants inexploitables à la fin de la phase de développement. Bien entendu, les développeurs de logiciels veulent être libres de décider eux-mêmes du langage à adopter pour telle ou telle tâche, mais les analystes programmeurs veulent eux aussi être libres de déterminer quel environnement de développement est le plus adapté à leurs besoins au lieu d'être obligés d'utiliser un environnement précis sur la base des contraintes que pose une technologie de composants donnée. Toute technologie de composants qui se place sur le long terme doit donc permettre de s'affranchir des problèmes de dépendance vis-à-vis de la plate-forme, mais aussi vis-à-vis du langage.
Phylosophie du système à base de composant logiciel
Java a joué un rôle prépondérant dans la mutation qui a permis de faire des projets de développement de logiciels vraiment indépendants de toute plate-forme une réalité, et c'est plus particulièrement la technologie JavaBeans qui permet de développer des composants logiciels. JavaBeans est un ensemble de classes, indépendant de toute architecture et de toute plateforme, qui permet de créer et d'utiliser des composants logiciels Java. JavaBeans prend le relais des autres technologies de composants au point même où celles-ci avaient échoué, en utilisant la plate-forme portable Java comme base de travail pour fournir une solution de composants logiciels vraiment complète.
L'un des avantages évidents de ce langage est une bibliothèque d'exécution qui se veut indépendante de la plate-forme: en théorie, il vous est possible d'utiliser le même code pour Windows 95/98/NT, Solaris, UNIX, Macintosh, etc. Cette propriété est indispensable pour une programmation sur Internet (cependant, par rapport à la disponibilité sur Windows et Solaris, les implémentations sur d'autres plates-formes ont toujours un léger décalage).
Un autre avantage de ce langage de programmation réside dans le fait que la syntaxe de java est analogue à celle de C++, ce qui le rend économique et professionnel. Les programmeurs Visual Basic (VB) risquent néanmoins de trouver cette syntaxe déplaisante, et regretteront certaines constructions de VB, telles que Select Case. Java est un langage "à objets", par opposition au C++ qui lui, est "orienté objet" et qui autorise la programmation procédurale. Tous les éléments de Java, à l'exception de quelques types de base tels que les nombres, sont des objets. (La conception orientée objet présentant de nombreux avantages pour les projets sophistiqués, elle a remplacé les techniques structurées précédentes).
Le fait de créer une autre version d'un langage C++ n'est cependant pas suffisant. Le point clé est le suivant : il est beaucoup plus facile d'obtenir du code sans erreur à l'aide de Java qu'avec C++.
Pourquoi ? Les concepteurs de Java ont beaucoup réfléchi à la raison pour laquelle le code C++ contenait autant d'erreurs. Cette réflexion les a amenés à ajouter dans Java des fonctions destinées à éliminer la possibilité de créer du code contenant les types d'erreurs les plus courants (selon certaines estimations, le code C++ contient au moins une erreur toutes les cinquante lignes).
Cette section détaille le JDK et ses outils. Les différentes versions et leurs principales caractéristiques sont abordées.
La machine virtuelle développée par Sun représente le conteneur dans lequel le code Java est exécuté. Afin de garantir la possibilité de s'exécuter sur de nombreux systèmes existants ou à venir, la machine virtuelle définit une architecture d'exécution complète :
Il s'agit donc d'un véritable processeur virtuel qui définit et implémente les éléments nécessaires au bon fonctionnement des programmes Java : allocations mémoire, format des programmes Java compilés, interpréteur, etc.
La sécurité est primordiale dans le cadre de l'utilisation de programmes provenant de l'Internet. Sun a donc doté la machine virtuelle de mécanismes de sécurité de façon à protéger le poste de l'utilisateur des programmes malveillants codés en Java. La sécurité est assurée par :
Une API regroupe un ensemble de fonctions utilitaires à partir desquelles le développeur construit son application. Java est doté de nombreuses API, chacune remplissant un rôle précis.
Les machines virtuelles sont mises à disposition des développeurs à travers le JDK , les navigateurs, ou encore des environnements de développement spécifiques tels que Borland JBuilder.
Les machines virtuelles Java sont aujourd'hui disponibles sous diverses formes. Dans le cadre des applets, les navigateurs incorporent leurs propres versions de la machine virtuelle. Dans le cas d'applications, l'environnement d'exécution Java doit être installé sur le poste au préalable (JRE ou Java Runtime Environment). Des solutions telles que Java Plug-in de Sun sont également susceptibles de fournir des machines virtuelles capables d'exécuter du code Java. Pour obtenir un JRE, référez-vous aux instructions fournies à l'adresse http://java.sun.com/products.
Le JDK regroupe l'ensemble des éléments permettant le développement, la mise au point et l'exécution des programmes Java.
Le JDK inclut de nombreux outils de développement ainsi que l'ensemble de l'API Java dont le développeur dispose pour construire ses programmes. Le JDK peut donc être perçu comme :
Le JDK est en évolution constante et différentes versions sont mises à la disposition des développeurs. Connaître la version du JDK employée est extrêmement important : les classes disponibles peuvent être sensiblement différentes d'une version à une autre. La dernière mouture du JDK est la 1.3 beta 1 (vous trouverez dans les sections suivantes le détail des principales versions).
Bien qu'un développement Java puisse être entièrement réalisé à l'aide du JDK, les outils fournis sont de type ligne de commande - portabilité oblige. Ils n'autorisent donc pas une approche visuelle ni une automatisation du développement comme c'est le cas avec JBuilder.
Le Tableau suivant recense les principaux outils livrés avec le
JDK.
.
Nom Descriptionjava.exe Machine virtuelle Java, permet l'exécution des programmes (redistribuable en version Java 2).
jre.exe
Machine virtuelle Java redistribuable (Java Runtime Engine), permet l'exécution des programmes. Attention, ce programme n'existe plus en plate-forme Java 2. Il est remplacé par java.exe.
javac.exe
Compilateur Java.
appletviewer.exe
Machine virtuelle Java permettant l'exécution des applets.
jar.exe
Permet la création et la manipulation d'Archives Java (JAR).
javadoc.exe
Générateur de documentation Java, au format HTML.
javap.exe
Désassembleur de classes Java compilées.
jdb.exe
Débogueur Java en ligne de commande.
Les versions majeures du JDK sont les suivantes
Les navigateurs Netscape Communicator 4.x, Internet Explorer 4.x
et 5.x .supportent totalement ou partiellement le JDK 1.1.
.
La plupart des spécifications des différents JDK sont accessibles sur Internet http://java.sun.com/ products/JDK. Les différences essentielles entre les versions sont détaillées dans les sections suivantes. La numérotation de Sun est codifiée sur trois chiffres, par exemple 1.0.2. La première position représente la version majeure, la deuxième représente l'ajout de nouvelles fonctionnalités, le troisième chiffre identifie une version corrective.
Le JDK 1.0
La version la plus aboutie du JDK 1.0 est la version de maintenance 1.02 en date de mai 1996. Le JDK 1.0 représente réellement les fondations de Java :
AWT est un élément important de la majorité des applications Java 1.0. Cette bibliothèque fournit une interface de programmation de fenêtres et d'interfaces graphiques. AWT met à la disposition des développeurs Java un ensemble d'éléments graphiques portables : fenêtres, boutons de commande, zones de liste, cases à cocher, listes déroulantes, etc. Bien que ce JDK soit largement supporté par les navigateurs, son manque de fonctionnalités est un frein important à l'écriture d'applications importantes. Il n'est utilisé aujourd'hui que lors d'une recherche de compatibilité maximale avec différents environnements Java.
Le JDK 1.1
La version 1.1 du JDK constitue une version extrêmement importante. Elle fut
mise à disposition des développeurs au début de l'année 1997. Elle marque l'apparition
d'un grand nombre de nouveautés ou d'améliorations par rapport à la version
précédente (passage de 200 classes à 500 classes environ). La dernière version
est la 1.1.8.
Les apports essentiels de cette version sont :
Le JDK 1.2
Le JDK 1.2 apparaît début 1998. Globalement, la version 1.2 améliore et étend l'ensem ble des fonctionnalités citées dans la section précédente. Les points les plus significatifs sont :
La plate-forme Java 2 repose entièrement sur le JDK 1.2. La version actuellement disponible de Java2 est la 1.2.2.