Les paquetages, la compression
de paquetages et la génération d'aide
1. LES PAQUETAGES
(Packages)
1.1
Définition
Un paquetage
est un ensemble de classes regroupées par domaine
d'utilisation.
Exemple : les
paquetages java.io, java.awt, etc.
1.2 Création d'un
paquetage
Deux solutions
:
1ère solution
:
@Créer un sous-répertoire dans un des répertoires
définis dans CLASSPATH (par exemple, on pourra créer le
sous-répertoire monpack dans E:\ClassesJava si
E:\ClassesJava appartient au classpath).
@Créer les sources des classes en écrivant en
tout début de programme la ligne package nomPackage;
(exemple : package monpack;) et les placer dans le
sous-répertoire créé (donc ici dans
E:\ClassesJava\monpack).
@Compiler les sources, cela produit les .class du
package dans le répertoire E:\ClassesJava\monpack
.
Remarque : après la création du .class, les
sources peuvent être placées ailleurs que dans le package.
2ème solution
:
@Créer les sources des classes en écrivant en
tout début de programme la ligne package nomPackage;
(exemple : package monpack;) et les placer dans un
répertoire à part (exemple : C:\SourcesJava).
@Compiler directement les sources sans créer
préalablement le sous-répertoire associé au package par exemple, on
lancera la commande :
javac -d
E:\ClassesJava C:\SourcesJava\nom_du_programme.java
pour
créer le sous-répertoire monpack dans E:\ClassesJava
(E:\ClassesJava doit figurer dans le CLASSPATH) et y créer le
.class.
Remarque
: si le répertoire monpack existe déjà, il y a uniquement
création du .class.
Remarques :
Généralement un package contient plusieurs
classes et est organisé de façon hiérarchique sur plusieurs
sous-répertoires (voir TP).
Si le paquetage n'est pas spécifié, il y a
un paquetage par défaut : c'est le répertoire courant et il est
constitué de tous les .class y figurant.
Les classes des paquetages doivent être
publiques.
1.3
Utilisation d'un paquetage
On peut
utiliser les classes d'un paquetage en préfixant la classe du nom
du paquetage ce qui n'est pas très pratique. Le mieux est
d'importer le paquetage : pour cela, il faut placer la ligne
import nomdupaquetage.*; en début de programme si on
souhaite importer toutes les classes du paquetage ou bien
importnomdupaquetage.NomClasse; si on souhaite
importer une seule classe du paquetage.
Attention, si on a un paquetage sous_pack inclus dans pack, le
fait d'inclure pack.* permettra uniquement l'accès aux classes
figurant directement dans pack, il faudra importer pack.sous_pack.*
pour avoir accès aux classes de sous_pack.
Les paquetages sont utilisés :
. lors de la pré-compilation des programmes
les important,
. lors de l'exécution des programmes les
important.
Attention : lors de la pré-compilation d'un programme important
des paquetages, il faut être vigilant sur l'organisation des
fichiers car Java sait compiler des fichiers sources "à la volée".
Donc s'il trouve en utilisant la variable CLASSPATH ou l'option
-classpath de
javac un fichier
.java avant le
fichier correspondant .class (le pré-compilateur peut très
bien trouver un fichier .java dans le 2ème répertoire du
CLASSPATH alors que le .class figure dans le 1er
répertoire du CLASSPATH), il le recompilera, ce qui non
seulement ralentira l'exécution, mais pourra même la faire
échouer.
2.
LA COMPRESSION DES
PAQUETAGES
2.1
Introduction
Les paquetages vont être compressés dans des fichiers
d'extension jar.
Un "jar" peut contenir d'autres fichiers en plus des .class, on
peut y inclure aussi notamment les manuels utilisateurs, la
documentation technique des programmes et de l'application,
L'utilisation des jar est
particulièrement pertinente avec les beans et même les
applications. En fait, le format jar est le format de diffusion de
composants java.
Un jar peut être signé ce qui permet
d'assouplir et d'élargir le modèle de sécurité, notamment des
applets qui ont des droits restreints par défaut.
Une archive jar
contient un fichier manifest qui permet de préciser le contenu du
jar et de fournir des informations sur celui-ci (classe principale,
type de composants, signature...).
2.2
Création d'un jar
Création d'un jar contenant tous les
fichiers du répertoire courant et des sous-répertoires
avec un fichier manifest créé
automatiquement :
jar cf test.jar monpack
Si on reprend l'exemple précédent, on
devra se placer dans le répertoire support de monpack donc
ici dans E:\ClassesJava pour la
création du jar et ensuite on supprimera le répertoire
monpack.
Le nom du jar (précédé de son
emplacement) doit être indiqué
Remarque : si on a un jar contenant
toutes les classes au même niveau, il n'est pas nécessaire de
placer les classes dans un paquetage. Il suffira de mettre le nom
du jar dans le CLASSPATH.
Mais généralement, on organise les
classes en paquetages et ensuite on compresse l'ensemble dans un
jar.
On emploiera généralement la commande
jar avec les options suivantes :
cf
|
Création
d'un nouvelle archive
|
tf
|
Affiche
le contenu de l'archive
|
xf
|
Extraction
du contenu de l'archive
|
uf
|
Mise à
jour ou ajout de fichiers à l'archive
|
Autre exemple : lister le contenu
d'un jar
jar tf test.jar
2.3 Utilisation d'un
jar
Le jar est uniquement à préciser dans
le CLASSPATH.
3. GENERATION D'AIDE HTML A
PARTIR D'UN PROGRAMME JAVA

Après
l'utilisation de cette commande, un fichier html :
nomduprog.html sera créé dans le répertoire
courant.
L'utilisation de javadoc nécessite que les
classes soient publiques.
Extrait de Factorielle2.java :
import
java.io.*;
/**
Ma classe Factorielle2 **/
public class Factorielle2
{
/** Méthode main **/
public static void main(String args[]) throws
IOException
{
La commande javadoc Factorielle2.java
produit le fichier Factorielle2.html suivant :
