AdaptRecursive StackOverflowError

时间:2009-08-29 20:33:30

标签: java compilation javac stack-overflow

在编译我的项目时,我得到了:

The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
    at com.sun.tools.javac.code.Type$WildcardType.isSuperBound(Type.java:435)
    at com.sun.tools.javac.code.Types$1.visitWildcardType(Types.java:102)
    at com.sun.tools.javac.code.Types$1.visitWildcardType(Types.java:98)
    at com.sun.tools.javac.code.Type$WildcardType.accept(Type.java:416)
    at com.sun.tools.javac.code.Types$MapVisitor.visit(Types.java:3232)
    at com.sun.tools.javac.code.Types.upperBound(Types.java:95)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2986)
    at com.sun.tools.javac.code.Types.adapt(Types.java:3016)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2977)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2986)
    at com.sun.tools.javac.code.Types.adapt(Types.java:3016)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2977)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2986)
    at com.sun.tools.javac.code.Types.adapt(Types.java:3016)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2977)
    at com.sun.tools.javac.code.Types.adaptRecursive(Types.java:2986)
    at com.sun.tools.javac.code.Types.adapt(Types.java:3016)
    ...

您如何找到问题的根源?

我找到了a bug report ...

3 个答案:

答案 0 :(得分:2)

您链接到的错误报告表明该错误已在JDK 6中修复。您使用哪个版本的JDK构建?

如果您无法识别导致问题的源部分,也许您可​​以尝试使用JDK 6进行编译,看看它是否可以识别问题而不会崩溃。

否则,我会使用“分而治之”的方法:删除一半的源代码,编译,看看它是否仍然崩溃。根据是否存在,您将知道问题的哪一半。重复。

答案 1 :(得分:0)

我首先运行带有-verbose选项的javac,看看哪个.java文件导致了问题。

答案 2 :(得分:0)

尝试使用不同的编译器(如Eclipse中的编译器)怎么样?它的错误信息至少是不同的,在我的经验中往往更加重要。我还没有看到像这样的编译失败。