javadoc stackoverflow java.lang.StackOverflowError [英] javadoc stackoverflow java.lang.StackOverflowError

查看:102
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆