Lorsque vous compilez vos fichiers code> Java CODE>, incorpore-t-il également vos javadocs et vos commentaires dans le fichier de classe? p>
Par exemple, si vous avez de grands javadocs, cela affecte-t-il la taille globale de votre fichier de classe? Ou le compilateur ignore-t-il tout en commençant par // code> et / * code>? P>
3 Réponses :
Non, les commentaires ne sont pas compilés dans vos fichiers de classe. Cela inclut les Javadocs. P>
Au lieu de cela, vous devez utiliser un outil Javadoc (comme Sun / Oracle's ) sur le code source pour générer la documentation. P>
Non, le fichier de classe n'est que des données binaires. P>
Annotations May em> être conservée (selon l'annotation). P>
Les commentaires n'affectent pas la taille du fichier de classe. P>
non. Il existe plusieurs options de débogage qui affectent la taille d'un fichier de classe, mais les commentaires ne font jamais partie du fichier Quelques estimations: p>
Remarque: Commentaires (et donc Javadoc) ne sont jamais ajoutés au bytecode. P>
Pour voir ce qui finit dans le fichier .Class code> résultant. P>
-g: ligne code> ajoute simplement des informations de numéro de ligne (quelques octets) li>
-g: vars code> inclut les noms complets de toutes les variables. C'est généralement l'option la plus chère. Li>
-g: source code> ajoute simplement le nom du fichier source (sans chemin). LI>
ul>
-parameters code> fait des noms de paramètres de méthode accessibles via une réflexion. Ceci est indépendant de -g: vars code>. P>
.Class code>, utilisez javap -v code> plus le chemin du fichier. p>
Avez-vous essayé ça? Les Javadocs ne sont pas inclus même si -g: source code> est défini. J'ai essayé de décompiler des cours avec Jad.
@ctapobep: Je viens d'essayer avec Java 6 et 7 et vous avez raison: -g: source code> n'inclut pas le code source dans le fichier de classe. Quelques minutes de dérivation et de googling ne se sont pas présentées et que cette option fait vraiment: - /
Malheureusement, cette réponse est tout simplement fausse. Le code source Java, les commentaires ou les javadocs ne sont jamais inclus dans le fichier .Class code>. L'option -g: source code> amène simplement que le compilateur émet le chemin du fichier source (dénudé) en tant qu'attribut dans le pool .CLASS code> Pool constant.
@Stephenc je ne peux pas la supprimer car il est déjà accepté. Fixons-le. Qu'est-ce qu'un "chemin source dépouillé"?
C'est (Afaik) fondamentalement le chemin du chemin du fichier source avec un préfixe supprimé. J'avais besoin de plonger au plus profond du code pour déterminer exactement ce que ce préfixe est / comment il est déterminé. Il serait raisonnable de ne pas inclure les détails sur le décapage ... parce que nous parlons de quelque chose que ne I> ne fait pas ce que veut (ou veut éviter).
@Stephenc j'ai vérifié avec Javap. Il lâche le chemin du nom du fichier. Étant donné que vous pouvez déterminer le dossier du nom du package, cela permet probablement de comprendre le fichier source des classes intérieures et / ou lorsque vous avez plusieurs classes dans un seul fichier.
@depecated code> dans javadoc (à ne pas être confondu avec@depecated code>) est utilisé pour définir un peu.