javadoc stackoverflow java.lang.StackOverflowError

时间:2014-12-17 00:28:35

标签: javadoc stack-overflow

我在下载源代码及其所有依赖项后正在处理BYU EDIF Tools Sourceforge Project我在尝试为它生成javadoc时遇到以下错误:

C:\Users\akeller9\workspace>javadoc -d byuediftools\doc -sourcepath byuediftools -classpath "byuediftools\JHDL_provisional.jar;byuediftools\JSAP-2.1.jar" -subpackages edu
Loading source files for package edu.byu.ece.edif.arch...
...<more source files loaded>...
Loading source files for package edu.byu.ece.edif.util.parse...
java.lang.StackOverflowError
    at com.sun.tools.javac.parser.JavaTokenizer.readToken(JavaTokenizer.java:564)
    at com.sun.tools.javac.parser.Scanner.ensureLookahead(Scanner.java:102)
    at com.sun.tools.javac.parser.Scanner.token(Scanner.java:95)
    at com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:310)
    at com.sun.tools.javac.parser.JavacParser.peekToken(JavacParser.java:306)
    at com.sun.tools.javac.parser.JavacParser.term3(JavacParser.java:1210)
    at com.sun.tools.javac.parser.JavacParser.term2(JavacParser.java:909)
    at com.sun.tools.javac.parser.JavacParser.term1(JavacParser.java:880)
    at com.sun.tools.javac.parser.JavacParser.term(JavacParser.java:836)
    at com.sun.tools.javac.parser.JavacParser.term(JavacParser.java:816)
    at com.sun.tools.javac.parser.JavacParser.parseExpression(JavacParser.java:779)
    at com.sun.tools.javac.parser.JavacParser.parExpression(JavacParser.java:2260)
    at com.sun.tools.javac.parser.JavacParser.parseStatement(JavacParser.java:2444)
    at com.sun.tools.javac.parser.JavacParser.blockStatement(JavacParser.java:2352)
    at com.sun.tools.javac.parser.JavacParser.blockStatements(JavacParser.java:2298)
    at com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:2269)
    at com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:2283)
    at com.sun.tools.javac.parser.JavacParser.parseStatement(JavacParser.java:2441)
    at com.sun.tools.javac.parser.JavacParser.blockStatement(JavacParser.java:2352)
    at com.sun.tools.javac.parser.JavacParser.parseStatementAsBlock(JavacParser.java:2317)
    at com.sun.tools.javac.parser.JavacParser.parseStatement(JavacParser.java:2445)
    at com.sun.tools.javac.parser.JavacParser.blockStatement(JavacParser.java:2352)
    at com.sun.tools.javac.parser.JavacParser.blockStatements(JavacParser.java:2298)
    <<<MANY MORE LINES IN THE STACK TRACE OBVIOUSLY STACK OVERFLOW>>>
    at com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:2269)
    at com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:2283)
    at com.sun.tools.javac.parser.JavacParser.parseStatement(JavacParser.java:2441)
    at com.sun.tools.javac.parser.JavacParser.blockStatement(JavacParser.java:2352)
    at com.sun.tools.javac.parser.JavacParser.parseStatementAsBlock(JavacParser.java:2317)
    at com.sun.tools.javac.parser.JavacParser.parseStatement(JavacParser.java:2445)
    at com.sun.tools.javac.parser.JavacParser.blockStatement(JavacParser.java:2352)
    at com.sun.tools.javac.parser.JavacParser.blockStatements(JavacParser.java:2298)
    at com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:2269)
javadoc: error - fatal error
1 error

当我排除最后一个包时,它似乎开始生成文档,但随后出现相同的错误。

我不确定它是什么。我想到了包/类中依赖循环的想法。

1 个答案:

答案 0 :(得分:1)

此代码库具有深层次的依赖性。这会导致javadoc中的堆栈溢出,因为默认堆栈大小太小而无法支持此级别的依赖项。

要解决此问题,可以在'javadoc'命令中添加以下标志:

javadoc -J-Xss1m ...

这将标志-Xss1m传递给运行javadoc的java VM,它将堆栈大小增加到1兆字节。有关详细信息,请参阅JavaDoc文档。使用此选项运行命令后,javadoc能够成功生成BYUEDIFTools

的文档