我想使用ant和javac 1.7编译器编译代码库。 目前,代码库使用1.6编译器进行编译,但是当我切换到1.7编译器时,我遇到以下两个问题。 1)我得到一个警告:“警告:x是内部专有API,可能会在未来版本中删除”,其中x是内部专有API的一部分,但其引用的代码中的行不引用x(也不会在给定文件中的任何地方引用x)。这发生在几个地方,它引用的行在注释块中。使用ant和Java 1.7编译问题
2)编译如下终止:
[javac] The system is out of resources. [javac] Consult the following stack trace for details. [javac] java.lang.StackOverflowError [javac] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:418) [javac] at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:460) [javac] at com.sun.tools.javac.comp.Attr.visitBinary(Attr.java:2053) [javac] at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1565)
这是我用于javac Ant脚本中的相关参数为:
source="1.6" target="1.6" debug="on" debuglevel="lines,vars,source" nowarn="on" fork="yes" executable="C:\Program Files\Java\jdk1.7.0_04\bin\javac" memorymaximumsize="1500m"
我试着更改源版本和目标版本。我也尝试调整内存大小。它似乎没有帮助。
这几乎肯定是一个编译器错误。尝试更新版本的Java 7? – 2012-07-17 20:04:27
它说'stackoverflow'。不知道为什么,但你可以尝试使用更大的堆栈... – coolcfan 2012-07-18 02:48:11
@SeanOwen它只有1更新后,我还没有发现任何已知的问题与编译器通过谷歌搜索。不过,我会尝试你的建议。 – Avrom 2012-07-19 14:09:38