JavaDoc

Javadoc est un outils fourni par Sun avec le JDK pour permettre la génération d'une documentation technique à partir du code source.

1. La documentation générée

Pour générer la documentation, il faut invoquer l'outils javadoc. Javadoc recrée à chaque utilisation la totalité de la documentation.

La documentation générée est par défaut au format HTML.

Pour formatter la documentation, javadoc utilise une doclet. Une doclet permet de préciser le format de la documentation générée. Par défaut, javadoc propose un doclet qui génère une documentation au format HTML. Il est possible de définir sa propre doclet pour changer le contenu ou le format de la documentation (pour par exemple, générer du RTF ou du XML).

Par défaut , la documentation générée contient les éléments suivants :

 

La documentation de l'API java fourni par Sun est réalisée grâce à javadoc :

 

 

2. Les commentaires de documentation

Javadoc s'appuie sur le code source et sur un type de commentaires particuliers pour obtenir des données supplémentaires aux éléments qui composent le code source. Ces commentaires suivent des règles précises.

Ces commentaires commencent par /** et finissent par */ et contiennent toujours au minimum une phrase qui est un résumé de le l'élément. Si le commentaire utilise plusieurs ligne, javadoc ignore les premiers caractères d'espacement ainsi que le premier caractères * qui suit ces caractères. Ceci permet d'utiliser le caractère * pour aligner le contenu du commentaires

Il est possible de faire suivre cette suivre cette phrase d'un texte descriptif plus complet.

Il est possible d'utiliser des tags HTML pour formatter le texte : il ne faut pas utiliser de tags HTML de structure tel que Hn, HR ... qui sont utilisés par javadoc pour formatter la documentation.

Enfin il est possible d'utiliser des tags prédéfinis par javadoc pour fournir des informations plus précises sur des composants particuliers de l'élément (auteur, parametres, valeur de retour). Ces tags sont définis pour un ou plusieurs type d'élément.

Exemple ( code java 1.0 ) :

/**
* un commentaire javadoc
*/


Par défaut, javadoc prend en compte les éléments suivants : les classes, les interfaces, les méthodes et les champs public et protected. Le placement du commentaire de documentation dans le code source est important. Le documentaire est associé à l'élément qui suit immédiatement le commentaire. Il faut ainsi pour faire précéder l'élément concerné par sa documentation et ne déclarer qu'une seule entité par ligne pour pouvoir lui associer la documentation.

3. Les tags définis par javadoc

Javadoc défini plusieurs tags qui permettent de précises certains composants de l'élément décrit de façon standardisée. Ces tags commencent tous par le caractère arobase @. Il existe deux types de tags :

Pour pouvoir être interprétés les tags standards doivent obligatoire commencé en début de ligne.

Tag Rôle élément concerné
version du JDK
@author permet de préciser l'auteur de l'élement classe et interface
1.0
@deprecated permet de préciser qu'un élément est déprécié package, classe, interface, méthode et champ
1.1
{@docRoot} représente le chemin relatif du répertoire principal de génération de la documentation  
1.3
@exception permet de préciser une exception qui peut être levée par l'élément méthode
1.0
{@link} permet d'inserer un lien vers un élément de la documentation dans n'importe quel texte package, classe, interface, methode, champ
1.2
@param permet de préciser un paramètre de l'élément constructeur et méthode
1.0
@see permet de préciser un élément en relation avec l'élément documenté package, classe, interface, champ
1.0
@serial   classe, interface
1.2
@serialData   methode
1.2
@serialField   classe, interface,
1.2
@since permet de préciser depuis quel version l'élément aété ajouté package, classe, interface, méthode et champ
1.1
@throws identique à @exception méthode
1.2
@version permet de préciser le numéro de version de l'élément classe et interface
1.0
@return permet de préciser la valeur de retour d'un élément méthode
1.0

 

 

3.1. Le tag @author

Ce tag permet de préciser le nom du ou des auteurs du code. Ce tag doit être utilisé uniquement pour un élement de type classe ou interface.

La syntaxe est la suivante :

@author nom_de_l_auteur

Ce tag génère une entrée Author: avec le nom de l'auteur dans la documentation. Par défaut, ce tag n'est pas pris en compte par javadoc. Pour qu'il soit pris en compte il faut utiliser l'option -author.

Pour préciser plusieurs noms, il faut les séparer par une virgule ou utiliser plusieurs tags chacun contenant un nom.

 

3.2. Le tag @deprecated

Ce tag permet de donner des précisions sur un élément déprécié (deprecated).

Ce tag doit être utilisé uniquement pour un élement de type classe ou interface.

La syntaxe est la suivante :

@deprecated explication

Il est utile de préciser depuis quelle version l'élément est déprécié et de préciser si un autre élément le remplace.

Ce tag génère une entrée Deprecated avec l'explication dans la documentation.

Ce tag est particulier car il est le seul reconnu par le compilateur : celui ci prend note de cet attribut lors de la compilation pour permettre d'informer les utilisateurs de cet élément.

 

3.3. La tag @exception

Ce tag permet de fournir des informations sur une exception qui peut être levée. Il faut le faire suivre du nom complétement qualifié de l'exception et d'une description des conditions de sa levée.

Ce tag doit être utilisé uniquement pour un élement de type méthode.

La syntaxe est la suivante :

@exception nom_de_la_classe description_de_l_exception

Exemple extrait de la documentation de l'API du JDK :

 

Il faut utiliser un tag @exception pour chaque exception déclarée dans la signature de la méthode.

 

3.4. Le tag @param

Ce tag permet de fournir des informations sur les paramètres. Ce tag doit être utilisé uniquement pour un élement de type constructeur ou méthode.

La syntaxe est la suivante :

@param nom_du_parametre description_du_parametre

Ce tag génère une ligne dans la section Parameters: avec son nom et description dans la documentation. La description peut tenir sur plusieurs lignes.

Exemple extrait de la documentation de l'API du JDK :

Par défaut, ce tag n'est pas pris en compte par javadoc. Pour qu'il soit pris en compte il faut utiliser l'option -author.

Il faut utiliser un tag @param pour chaque paramètre en respectant l'ordre des paramètres dans la signature.

 

3.5. Le tag @return

Ce tag permet de préciser la valeur de retour. Ce tag doit être utilisé uniquement pour un élement de type méthode qui renvoie une valeur.

La syntaxe est la suivante :

@return description_retour

Ce tag génère une ligne dans la section Returns: avec sa description dans la documentation. La description peut tenir sur plusieurs lignes.

Exemple extrait de la documentation de l'API du JDK :

 

3.6. La tag @see

Ce tag permet de définir des liens vers d'autres éléments de l'API.

 

 

3.7. Le tag @since

Ce tag permet de preciser depuis quelle version l'élément est utilisable. Ce tag peut être utilisé avec tous les élements.

La syntaxe est la suivante :

@since numero_de_version

Ce tag génère une ligne dans la section Since: avec son numéro de version.

Exemple extrait de la documentation de l'API du JDK :

 

3.8. Le tag @throws

Ce tag est équivalent au tag @exception

 

3.9. Le tag @version

Ce tag permet de préciser la version d'un élément. Ce tag doit être utilisé uniquement pour un élement de type classe ou interface.

La syntaxe est la suivante :

@version description_de_la_version

Ce tag génère une entrée Version: avec la description de la version dans la documentation. Par défaut, ce tag n'est pas pris en compte par javadoc. Pour qu'il soit pris en compte il faut utiliser l'option -version.

 

4. Les fichiers pour enrichir la documentation des packages

Javadoc permet de fournir un moyen de documenter les packages car ceux ci ne disposent de code source particulier : définir des fichiers dont le nom est particulier.

Ces fichiers doivent être placé dans le répertoire désigné par le package.

Le fichier package.html contient une description du package au format HTML. En plus, il est possible d'utiliser les tags @deprecated, @link, @see et @since.

Le fichier overview.html permet de fournir un résumé de plusieurs packages au format html. Ce fichier doit être placé dans le répertoire qui inclus les packages décrits.