JavaDocからすべてのメソッドのリストを抽出する

私はjavadocのパッケージをいくつか持っており、内部に追加されたすべてのメソッドのリストを抽出したいと思います。 somethongのような:

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

List listMethods=ExtractAPI(path);

私はそれをする言語を気にしないが、私はjavaがそれのための組み込みの機能を持っていると思います。

私はjavadoc doumntationを読んでみました:

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

しかし、それが可能であれば十分にはっきりしていないことがあります。

ありがとう!

0
@Dave:私はjavadocとjarファイルを持っています
追加された 著者 sara,
@Dave私は瓶からそれを抽出しても構いません、私はリストが必要です。
追加された 著者 sara,
@ホームあなたは答えと例を投稿できますか?
追加された 著者 sara,
標準のJavadocドックレットによって作成されたドキュメントを抽出する場合、IIRCはそれほど有益ではないので、虚偽のHTML XPathの世界に入ります。構造を知る必要があります。ソースを表示するだけです。 jarファイルやクラスファイルはありませんか?あなたの目的は何ですか?
追加された 著者 Dave Newton,
@ sara IMOはjarファイルとバイトコードスキャナを使いやすくなっていますが、HTMLから情報を得ても大丈夫だと思います。もう一度 - 目的は何ですか?
追加された 著者 Dave Newton,
alllクラスのすべてのメソッド?このリストを持つことのメリットは何ですか?
追加された 著者 home,
@ sara:単純な再帰関数を作成し、リフレクションを使ってメソッドのシグネチャを取得することができます。
追加された 著者 home,

1 答え

最も簡単な解決策は、jarファイルを解凍して次のようにすることです:

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

これにより、jarの各 .class ファイルに対して、次のような出力が生成されます。

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();
}

出力は異なる場合があります。他の逆コンパイルオプションの場合は、 javap -help と入力します。

特殊な書式の出力が必要な場合(これは上記のものではありませんが、かなり規則的な構文で簡単に操作できます)、 javap は最適なオプションではないかもしれません。しかし、あなたは質問の目的を述べることを断るので、あなたが達成しようとしていることを知ることは不可能です。

3
追加された
Windowsを使用していますか?コマンドライン?それは私には役に立たない
追加された 著者 sara,
@sara Windowsを実行している場合は、Cygwinをインストールします。それ以外の場合は、同じことを手動で行いますが、手動で行います。また、「うまくいかない」と言っても失敗を診断するものは何もありません。
追加された 著者 Dave Newton,
+1;おいしい
追加された 著者 home,