首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式运行标准Doclet

以编程方式运行标准Doclet
EN

Stack Overflow用户
提问于 2014-06-28 16:18:28
回答 1查看 1K关注 0票数 1

从理论上讲,应该可以从Java程序员本身运行javadoc生成过程(如这里所述的http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/standard-doclet.html#runningprogrammatically)。我从here中获取了这个程序,并稍微修改了一下,如下所示。然而,当我从我的类的主方法调用doTest方法时,我总是从execute函数得到返回代码"1“,这会导致错误。

代码语言:javascript
复制
static void doTest() {
    ByteArrayOutputStream redirectedOutput = new ByteArrayOutputStream();
    PrintStream originalOutput = System.out;

    // redirect System.out to a buffer
    System.setOut(new PrintStream(redirectedOutput));

    PrintWriter sink = new PrintWriter(new ByteArrayOutputStream());

    // execute javadoc
    int result = com.sun.tools.javadoc.Main
            .execute(
                    "javadoc", sink, sink, sink,
                    "com.sun.tools.doclets.standard.Standard",
                    new String[] {
                            "-sourcepath",
                            "\"C:\\Program Files (x86)\\Java\\jdk1.7.0_51\\src\\\"",
                            "java.util" });

    // test whether javadoc did any output to System.out
    if (redirectedOutput.toByteArray().length > 0) {
        originalOutput
                .println("Test failed; here's what javadoc wrote on its standard output:");
        originalOutput.println(redirectedOutput.toString());
        throw new Error("javadoc output wasn\'t properly redirected");
    } else if (result != 0) {
        throw new Error("javadoc run failed " + result);
    } else {
        originalOutput.println("OK, good");
    }
}

我可以用下面的代码行生成javadoc:

代码语言:javascript
复制
C:\Program Files (x86)\Java\jdk1.7.0_51\bin>javadoc -sourcepath ..\src\ -d "C:\Users\leo\Eigene Dateien\javadoc" java.util

我的环境是带有JDK 1.7.0_51的Windows。

EN

回答 1

Stack Overflow用户

发布于 2014-12-12 17:48:12

我正在以不同的方式执行它,请参阅我的问题- Doclet: firstSentence is null

我会说(没有测试),你的参数应该是这样的:

代码语言:javascript
复制
    String[] params = new String[] {
            "-doclet", "com.sun.tools.doclets.standard.Standard",
            "-sourcepath", "C:\\Program Files (x86)\\Java\\jdk1.7.0_51\\src\\",
            "java.util"
    };
    com.sun.tools.javadoc.Main.execute(params);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24464999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档