2012-02-06 4 views
0

J'ai un paquet de javadoc, et je veux extraire une liste de toutes les méthodes qui y sont ajoutées. somethong comme:Extraire une liste de toutes les méthodes de JavaDoc

path="C:\Doc\idex.html"; 

List<String> listMethods=ExtractAPI(path); 

Cela ne me dérange pas la langue de le faire, mais je suppose que Java a une des caractéristiques BUILTIN pour elle.

J'ai essayé de lire la doumntation javadoc:

http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/doclet/overview.html

Mais ne pouvait pas comprendre assez clair s'il est possible, et si oui comment exactement pour le faire.

Merci!

+0

Si vous extrayez des documents créés par le doclet Javadoc standard, vous êtes dans un monde de XPaths HTML foireux, parce que IIRC ils ne sont pas marqués avec beaucoup d'utile - vous devez connaître la structure. Juste voir la source. Vous n'avez pas les fichiers jar ou class? Quel est ton but? –

+0

@Dave: J'ai javadoc et un fichier jar – sara

+0

Toutes les méthodes dans les classes alll? Quel est l'avantage d'avoir cette liste? – home

Répondre

3

solution la plus rapide est de dézipper le pot faire quelque chose comme ceci:

find . -name "*.class" | sed s/\.class// | xargs javap -private 

Cela produira une sortie similaire à ce qui suit pour chaque fichier .class dans le pot:

Compiled from "SHTMLPanelSingleDocImpl.java" 
class com.lightdev.app.shtm.SHTMLPanelSingleDocImpl extends com.lightdev.app.shtm.SHTMLPanelImpl{ 
    public com.lightdev.app.shtm.SHTMLPanelSingleDocImpl(); 
    protected void initDocumentPane(); 
    protected void initActions(); 
} 

sortie peut varier . Pour les autres options de décompilation, tapez javap -help.

Si vous avez besoin d'une sortie spécifiquement formatée (qui ne peut pas être extraite de ce qui précède, qui a donc une syntaxe assez régulière est facilement manipulable) alors javap peut ne pas être la meilleure option. Mais puisque vous refusez d'énoncer le but de la question, il est impossible de savoir ce que vous essayez d'accomplir.

+0

+1; verrry nice – home

+0

Utilisez-vous Windows? ligne de commande? Cela ne fonctionne pas pour moi – sara

+0

@sara Si vous utilisez Windows, installez Cygwin. Sinon, faites la même chose, mais manuellement. Notez également que le fait de dire "ne fonctionne pas" ne permet pas de diagnostiquer l'échec. –

Questions connexes