3. Chapitre 4 : Plate-forme JAVA et librairies (API)
Qu’est ce qu’une API ?
Une interface de programmation (Application Programming Interface ou API) est un
ensemble de fonctions, de procédures ou de classes mises à la disposition des programmes
informatiques par une bibliothèque logicielle, d’un système d'exploitation ou d’un service.
La connaissance des API est indispensable à l'interopérabilité entre les composants logiciels.
Dans le cas d'une bibliothèque, il s'agit généralement de fonctions considérées comme utiles
pour d'autres composants.
Exemple de quelques API :
java.lang.* :
Boolean
Character
Double
Class
Float
Math
Integer
Process
Process oat
Long
JAVA.LANG. Runtime
Runtime
String
StringBuffer
System
Thread
ThreadGroup
Throwable
Number
Clonable
Runnable
3
Riadh Bouhouchi
4. Chapitre 4 : Plate-forme JAVA et librairies (API)
Ce package rassemble les classes de base de Java. Toutes les classes et interfaces de java.lang
sont automatiquement importées par le compilateur.
java.lang.String :
La classe String gère des chaînes de caractères (char).
Une classe String n’est pas modifiable (final).
Les valeurs littérales ("abc") sont transformées en String.
L'opérateur + permet la concaténation de 2 String.
java.lang.StringBuffer :
Il est très souvent utile de modifier des objets String.
La classe StringBuffer gère des chaînes de caractères (char) modifiable (setCharAt(),
ppend(), insert()).
La méthode toString() convertie une StringBuffer en String (le même tableau est
partagé, jusqu'à la modification).
java.lang.Thread :
Un Thread permet l’exécution en parallèle d’une suite d’instructions.
Deux possibilités : soit hériter de Thread soit implémenter de Runnable.
4
Riadh Bouhouchi
5. Chapitre 4 : Plate-forme JAVA et librairies (API)
Java.util.*
BitSet
Date
Dictionary Hashtable
java.util.* Observable
Properties
Random
StringToke
nizer
Vector Stack
Ce package rassemble des classes d'utilitaires (gestion des collections de données, génération
de nombres aléatoires, énumération, date,...). Il définit aussi les classes d'exceptions
EmptyStackException et NoSuchElementException.
java.util.Hashtable :
Afin de faciliter les tris, Java propose une classe ‘ table de hachage ’.
Cette classe gère une collection d'objets au travers d'une table de hachage dont les clés
sont des String et les valeurs associées des Object.
5
Riadh Bouhouchi
6. Chapitre 4 : Plate-forme JAVA et librairies (API)
java.util.StringTokenizer :
Afin de faciliter la recherche d’information dans des fichiers, chaînes de caractères, la
classe StringTokenizer permet de spécifier les caractères séparateurs facilitant le
découpage.
java.util.Vector :
Il est fréquent d’avoir à stocker une liste « variable » d’éléments quelconques
Cette classe gère une collection d'objets dans un tableau dynamique.
La classe Applet et les interfaces de ce package permettent de programmer une applet Java et
d'intégrer une applet dans un navigateur.
java.applet.*
AppletStub
java.applet.*
AppletContext
Applet
La classe Applet et les interfaces de ce package permettent de programmer une applet Java et
d'intégrer une applet dans un navigateur.
java.applet.Applet :
Une Applet permet de faire exécuter du Java au sein d’un navigateur (Netscape, IE,
Opéra, …).
Son appel est inclus dans le code HTML de la page.
Le browser récupère le ‘.class’ de l ’Applet et l’exécute via la JVM qu’il implémente.
Une applet est une classe compilée héritant de java.applet.Applet.
6
Riadh Bouhouchi
7. Chapitre 4 : Plate-forme JAVA et librairies (API)
java.awt.*
Component
Containe
java.awt.*
Pane
Applet
Ce package est développé dans le chapitre sur les composants AWT et les suivants. Les
classes de ce package permettent de programmer l'interface graphique d'un programme ou
d'une applet Java. IL définit aussi les classes d'exceptions AWTException et AWTError.
java.awt.Component :
Cette classe abstract est la super classe de toutes les classes de composants citées ci-
dessus, et implémente l'interface ImageObserver. Elle comporte un très grand nombre
de méthodes, qui sont souvent outrepassées par les classes dérivées de Component.
java.awt.Panel :
Cette classe qui dérive des classes Container et Component, permet de créer un
container utilisé comme zone d'affichage pour y ajouter des composants ou pour
dessiner directement avec les méthodes de classe Graphics. Le layout utilisé par défaut
par la classe Panel est la classe FlowLayout. Cette classe est la super classe Applet.
7
Riadh Bouhouchi
8. Chapitre 4 : Plate-forme JAVA et librairies (API)
java.io.*
BufferedInputStream
InputStream ByteArrayInputStream
FileInputStream DataInputStream
File
FilterInputStream LineNumberInputStream
PipedInputStream
PushbackInputStream
FileDescript
or SequenceInputStream
java.io.*
StringBufferInputStream
RandomAc
cessFile
ByteArrayOutput
Stream
OutputStream BufferedOutputStream
FileOutputStream
FilterOutputStream DataOutputStream
StreamTokenizer
PipedOutputStream PrintStream
Ce package rassemble les classes permettant de gérer les entrées-sorties (accès fichiers,
gestion de répertoires,...). Il définit aussi les classes d'exceptions IOException,
EOFException, FileNotFoundException, InterruptedIOException.
java.io.File :
Afin d’assurer la portabilité des applications, Java fournit une classe permettant un
accès identique aux fichiers quelque soit l ’OS sur lequel elle s’exécute.
java.io.File(Input|Output)Stream :
Ces classes permettent d'accéder en lecture et en écriture à un fichier.
8
Riadh Bouhouchi
9. Chapitre 4 : Plate-forme JAVA et librairies (API)
java.io.Data(Input|Output)Stream :
Ces classes permettent de lire et d'écrire des types primitifs et des lignes sur des flux.
java.io.PrintStream :
Cette classe permet de manipuler un OutputStream au travers des méthode print() et println().
Java.net.*
URLConnection
DatagramPacket
DatagramSocket
InetAddress
java.net.*
ServerSocket
Socket
URL
URLConnection
URLEncoder
Ce package rassemble les classes permettant de gérer les accès réseaux. Il définit aussi les
classes d'exceptions MalformedURLException, ProtocolException, SocketException,
UnknownHostException et UnknownServiceException.
java.net.Socket :
Cette classe implémente une socket TCP coté client.
9
Riadh Bouhouchi
10. Chapitre 4 : Plate-forme JAVA et librairies (API)
java.net.ServerSocket :
Cette classe implémente une socket TCP coté serveur.
java.net.URL :
permet l’accès aux URL
Les Plates-formes JAVA :
Il existe plusieurs plates-formes JAVA et chacune a ses propres avantages ; nous pouvons
citer quelques environnements de développements tels que Jbuilder, Eclipse , Netbeans…
La plate-forme Jbuilder :
JBuilder est un environnement de développement intégré pour Java, permettant le RAD, et
édité par Borland. L'application est elle-même développée en grande partie en Java.
JBuilder apporte certaines fonctionnalités spécifiques, disposant notamment d'une JVM
propre, permettant notamment l'exécution de code Java pas à pas.
Selon les éditions, il ne permet que la réalisation d'applications clientes (J2SE) ou également
serveur (J2EE). Des modules supplémentaires pour les applications mobiles, en particulier
pour les téléphones mobiles et les PDA, ou pour les services Web, sont également
disponibles.
Certaines versions intègrent des solutions de conception UML ou des outils de débogage et de
test.
JBuilder est disponible sur Windows, Linux, Solaris et Mac OS X.
La version 2008 de JBuilder n'est pas éditée par Borland mais par Codegear, la dernière
version éditée par Borland est JBuilder 2007. Codegear a été achetée par l'éditeur
Embarcadero en mai 2008.
JBuilder est un environnement graphique de développement Java 2. Très visuel compatible
avec les JDK standard.
C’est l’environnement de développement Java qui prend en charge plusieurs plateformes et
serveurs d'applications. Il permet le développement d'applications EJB, XML, services Web et
bases de données.
Il permet de construire des applications et des applets pour différentes versions du JDK
(JDK1.1x et plus). Tout programme existant, entièrement conforme à Java 2, peut être ajouté,
travaillé et exécuté dans l’environnement JBuilder.
JBuilder assure le support de l’intégralité des langages pour le développement en XML ou en
Java.
10
Riadh Bouhouchi
11. Chapitre 4 : Plate-forme JAVA et librairies (API)
Les fonctionnalités XML de JBuilder se répartissent entre les catégories suivantes :
Présentation, transformation et validation des documents XML
Liaison des données et manipulation par programme des documents XML
Interface avec les données de l’entreprise stockées dans des bases de données
Les fonctionnalités XML dépendent de l’édition de JBuilder.
Le support JBuilder du langage Java comprend :
• JavaBeans pour la réutilisation des composants
• Composants JFC/Swing pour le développement des interfaces utilisateur Java
Le support JBuilder Professionnel comprend de plus :
• JDBC
• Servlets
• JDK (Java Development Kit) multiples
JBuilder Entreprise ajoute le support des éléments de langages suivants :
• Enterprise JavaBeans (EJB) pour l’architecture des composants côté serveur
• CORBA
• Pages JavaServer (JSP) pour les applications basées sur le web
La plate-forme Eclipse :
Eclipse est un environnement de développement intégré libre, extensible, universel et
polyvalent, permettant de créer des projets de développement mettant en œuvre n'importe quel
langage de programmation. Eclipse IDE est principalement écrit en Java (à l'aide de la
bibliothèque graphique SWT, d'IBM), ce langage grâce à des bibliothèques spécifiques, est
également utilisé pour écrire des extensions.
La spécificité d'Eclipse IDE vient du fait de son architecture totalement développée autour de
la notion de plugin (en conformité avec la norme OSGi) : toutes les fonctionnalités de cet
atelier logiciel sont développées en tant que plug-in.
La base de cet environnement de développement intégré est l'Eclipse Platform, composée de :
Platform Runtime démarrant la plateforme et gérant les plug-ins
11
Riadh Bouhouchi
12. Chapitre 4 : Plate-forme JAVA et librairies (API)
SWT, la bibliothèque graphique de base de l'EDI
JFace, une bibliothèque graphique de plus haut niveau basée sur SWT
Eclipse Workbench, la dernière couche graphique permettant de manipuler des
composants, tels que des vues, des éditeurs et des perspectives.
De nombreux langages sont supportés par Eclipse en 2008 (la plupart grâce à l'ajout de
plugins), parmi lesquels :
Java,
GAP pour system i,
C#,
Ada,
C++,
C,
Cobol,
Objective Caml,
Python,
Perl (EPIC),
Ruby,
COBOL,
Pascal,
PHP (PDT),
Javascript,
XML,
HTML,
XUL,
SQL,
Action script,
Coldfusion,
Magik.
La plate –forme NetBeans :
NetBeans est un environnement de développement intégré (IDE) pour Java, placé en open
source par Sun en juin 2000 sous licence CDDL et GPLv2 (Common Development and
Distribution Licence). En plus de Java, NetBeans permet également de supporter différents
autres langages, comme Python, C, C++, XML, Ruby, PHP et HTML. Il comprend toutes les
caractéristiques d'un IDE moderne (éditeur en couleur, projets multi-langage, refactoring,
éditeur graphique d'interfaces et de pages web).
12
Riadh Bouhouchi
13. Chapitre 4 : Plate-forme JAVA et librairies (API)
Conçu en Java, NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC),
Mac OS X et Open VMS.
La version actuelle, Netbeans 6.7, est disponible en 20 langues, la plupart étant réalisées par la
communauté d'utilisateurs.
13
Riadh Bouhouchi