javadoc stackoverflow java.lang.StackOverflowError [英] javadoc stackoverflow java.lang.StackOverflowError
问题描述
下载源代码及其所有内容后,我正在研究 BYU EDIF Tools Sourceforge项目.依赖项,尝试为其生成javadocs时出现以下错误:
I am working on the BYU EDIF Tools Sourceforge Project after downloading the source code and all of it's dependencies I get the following error when trying to generate javadocs for it:
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
当我排除最后一个软件包时,它似乎正在开始生成文档,但随后发生相同的错误.
When I exclude that last package it appears to be start generating the docs but then the same error occurs.
我不确定这是什么.包/类中的依赖循环的想法浮现在脑海.
I am not sure what it is. The idea of dependency cycles in the packages/classes come to mind.
推荐答案
此代码库具有很深的依赖性.这会导致javadoc
中的堆栈溢出,因为默认的堆栈大小太小,无法支持此级别的依赖性.
This code base has a deep level of dependency. This causes a stack overflow in javadoc
because the default stack size is too small to support this level of dependencies.
要解决此问题,可以在"javadoc"命令中添加以下标志:
To work around this a the following flag can be added to the 'javadoc' command:
javadoc -J-Xss1m ...
这会将标志-Xss1m
传递给运行javadoc的Java VM,这会将堆栈大小增加到1 MB.有关更多信息,请参见 JavaDoc 文档.使用此选项运行命令后,javadoc能够成功生成 BYUEDIFTools
This passes the flag -Xss1m
to the java VM that is running javadoc which increases the stack size to 1 megabyte. See JavaDoc documentation for more information. After running the command with this option javadoc was able to successfully generate documentation for the BYUEDIFTools
这篇关于javadoc stackoverflow java.lang.StackOverflowError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!