私は、既存のJavaソースファイルからJavadocをスクラップし、カスタムドックレットを介して前処理するツールを作成しています(処理の詳細は関係ありません)。私はドックレットを書いており、Java documentationに示されているように、プログラマチックAPIを介して自分のコードからドックレットを呼び出すことができます。プログラムで呼び出されたJavadocドックレットの出力を呼び出し元から取得するにはどうすればよいですか?
ドックレットを実行した結果が、最初のクラスのJavaオブジェクトを介してexecute()メソッドの呼び出し側に返すことができないという意味で、このメカニズムは「書き込み専用」に見えます。代わりに、ドックレット内のファイルに中間出力を書き込んだり、それを私の呼び出し元から読み込んだりするなどのkludgeに頼らざるを得ません。
私の質問:たとえば、呼び出し元でカスタムドックレットによって直接生成された文字列を取得する方法はありますか?たとえば:
public void foo() {
// Invoke my custom doclet via Javadoc programmatically
com.sun.tools.javadoc.Main.execute(new String[] {"-d", "docs", "- sourcepath", "/home/usr/src", "p1", "p2"});
// Access the String output of my doclet here
String processedJavadoc = getTheOutputOfMyDoclet();
}
ありがとうございます!