我想使用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