web-dev-qa-db-fra.com

Comment écrire des liens javadoc?

Comment écrire des liens dans javadocs?

Actuellement, j'ai quelque chose comme:

{@link Java.lang.Math#sqrt(double) Math.sqrt}

pour produire le texte Math.sqrt qui doit être lié à l'API Java.lang.Math.sqrt(double), tout ce qu'il fait c'est produire le texte, pas de lien.

44
masher

Pour obtenir un lien vers quelque chose d'extérieur à votre code, vous devez utiliser l'option -linkoffline

où l'option -linkoffline a le format quelque chose comme ceci (enveloppé artificiellement):

-linkoffline http://Java.Sun.com/javase/6/docs/api/
             http://Java.Sun.com/javase/6/docs/api/

Cela indique à l'outil JavaDoc où trouver le lien vers JavaDoc et pour quels packages utiliser ce lien. A partir de la 2ème URL, il ajoutera "package-list" pour charger l'URL réelle:

http://Java.Sun.com/javase/6/docs/api/package-list

que vous pouvez vérifier en le chargeant dans un navigateur contient la liste des packages documentés à cette URL JavaDoc. Cela indique à l'outil JavaDoc que toute référence @link À quoi que ce soit dans l'un de ces packages doit être liée à l'URL fournie.

19
Eddie

Ma réponse est largement fournie par Eddie, mais son code exact ne fonctionne pas pour moi (ou du moins lors de l'utilisation de la version de javadoc fournie avec Java 1.6)

Si je fais:

    javadoc -linkoffline  http://Java.Sun.com/javase/6/docs/api/http://Java.Sun.com/javase/6 /docs/api/package-list 
 -public FileName.Java

alors javadoc se plaint:

    javadoc: avertissement - Erreur lors de la récupération de l'URL: 
  http://Java.Sun.com/javase/6/docs/api/package-list/package-list

Si, en revanche, je fais:

    javadoc -linkoffline  http://Java.Sun.com/javase/6/docs/api/http://Java.Sun.com/javase/6/docs/api /  
 -public FileName.Java

Ensuite, cela fonctionne, et mes liens sont remplis comme je le veux.

De plus, mon lien n'est pas mal formé. Le texte {@link Java.lang.Math#sqrt(double) Math.sqrt} produit le texte du lien Math.sqrt Au lieu du Math.sqrt(double) par défaut.

21
masher