我在下载源代码及其所有依赖项后正在处理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
当我排除最后一个包时,它似乎开始生成文档,但随后出现相同的错误。
我不确定它是什么。我想到了包/类中依赖循环的想法。
答案 0 :(得分:1)
此代码库具有深层次的依赖性。这会导致javadoc
中的堆栈溢出,因为默认堆栈大小太小而无法支持此级别的依赖项。
要解决此问题,可以在'javadoc'命令中添加以下标志:
javadoc -J-Xss1m ...
这将标志-Xss1m
传递给运行javadoc的java VM,它将堆栈大小增加到1兆字节。有关详细信息,请参阅JavaDoc文档。使用此选项运行命令后,javadoc能够成功生成BYUEDIFTools