TUTORIELS 
Présentation de JavaDoc
Un utilitaire permettant d'extraire du code ses commentaires pour les transformer en documentation HTML...  (17 janvier 2003)
 

Cinquième point de notre liste des 10 erreurs à éviter en Java, le commentaire d'une application est indispensable pour assurer la pérénité de l'application, transmise de développeurs en développeurs ou resortie après de nombreux mois d'oubli...
JavaDoc est un outil permettant d'aller plus loin que le simple commentaire, en permettant de créer automatiquement, par le biais de commentaires écrits sous un certain format, une documentation de l'application en HTML. Vous pouvez ainsi, moyennant un peu plus de rigueur et de mise en forme préparer une documentation complète sur votre programme (à défaut d'en écrire le manuel) tout en écrivant votre code.
C'est le programme javadoc, fourni avec le JDK qui se charger de parser (analyse syntaxique) votre code, d'en extraire les informations et de les restituer au format HTML.

Format
Les commentaires doivent bien évidement suivre une norme d'écriture. Ils peuvent contenir du texte simple, des tags HTML de mise en forme (italique, gras... ou même <pre>, pour mettre du code dans vos commentaires, ce qui peut se révéler utile), ou des tags spéciaux réservé à JavaDoc, qui débutent par @ (@author, @version...).. Ces commentaires doivent obligatoirement se trouve juste avec le code qu'ils commentent (paquetage, classe, interface, variable d'occurence ou méthode).

Voici la forme de base d'un commentaire JavaDoc pour une classe:

/** Description du code dans un phrase complète.
  * @author <a href="http://www.le-site.com/">Jean Dupondt</a>
  * @version 1.0 (2003-01-09)
*/
public class MaClasse extends java.applet.Applet {
...

Il existe des variantes selon le type de code qui est commenté, qui se situent principalement dans les mots-clés JavaDoc à emplyer. Nous allons les passer ne revue.

Les différentes balises JavaDoc
Balise
Usage
Cadre
@author
Nom de l'auteur du programme
Classes et interfaces, requis
@version
Numéro de version du programme
Classes et interfaces, requis
@serial
Types de données/valeurs possibles pour une variable/objet pouvent être sérialisé
Partout
@return
Variable ou objet retourné par le code documenté
Méthodes, requis pour chaque retour autre que void
@deprecated
Indique que le code est obsolète. Le complicateur enverra alors un avertissement
Partout
@exception
Indique, pour les méthodes générant des exceptions, le nom de la classe de l'exception et sa description
Methodes
@see
Nomme une autre classe, ce qui génère un lien HTML vers la documentation de cette classe. Peut renvoyer directement à une méthode de classe en précisant nomclasse#méthode
Partout
@param
Nom d'un argument, et description des valeurs qu'il peut stocker.
Méthodes et constructeurs, requis pour chaque argument
@since
Indique à quelle date un code a été ajouté
Partout

Voici un exemple plus long de commentaire:

/** Décrit les paramètres que l'applet peut prendre
* @author Gustave Flaubert
* @author Jules & Edmond de Goncourt
* @version 5.3 beta, 1833-05-23
* @param pecuchet La bétise humaine
* @param bouvard Comme Pécuchet
* @return copies
* @exception IndexOutOfBoundsException Débordement de la matrice
* @exception java.io.FileNotFoundException le fichier n'existe pas
* @see java.lang.String
* @see String
* @see java.io.InputStream;
* @see String#equals @see java.lang.Object#wait(int)
*/
public voir String[][] getParameterIfno() {
...

Une fois votre application terminé, la documentation sera créée automatiquement via la commande:
javadoc monprogramme.java

La documentation HTML sera générée dans le même repertoire que le programme. Pour sauver la documentation dans un autre repertoire que le repertoire courant, il faudra taper par exemple:
javadoc -d C:\ma-doc\ monprogramme.java

D'autres options permettent de spécifier quels mots-clés prendre en compte lors de la génération de la documentation (-author, -version...), de ne générer la documentation que pour une certaine partie du code (-public, -protected (actif par défaut), -package, -private). Par exemple, pour créer une documentation de programme.java dans le repertoire voisin docs et ne prendre en compte que le mot-clé author des classes publiques:
javadoc -d ..\docs -author -public programme.java

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page