Я пишу инструмент для очистки Javadoc от уже существующих исходных файлов Java и предварительной обработки его с помощью пользовательского доклета (специфика обработки не имеет значения). Я написал доклет и могу вызвать доклет из своего кода через программный API, как указано в документации по Java .
Похоже, что этот механизм "только для записи" в том смысле, что результаты выполнения доклета, если таковые имеются, не могут быть переданы обратно вызывающему методу execute () через объект Java первого класса. Вместо этого мне приходится прибегать к клуджу, например записывать промежуточный вывод в файл из доклета, а затем читать его обратно из моего вызывающего.
Итак, мой вопрос: есть ли способ получить, скажем, строку, сгенерированную моим пользовательским доклетом, непосредственно в invoker? Например:
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();
}
Заранее спасибо!