У меня есть проект Java, который содержит много очень больших исходных файлов, и он прекрасно компилируется в Eclipse, однако он не будет компилироваться с javac из командной строки или внутри Ant.
Когда я пытаюсь скомпилировать его из команды с помощью javac (или с помощью Ant), я получаю исключение StackOverflow:
[javac] java.lang.StackOverflowError
[javac] at com.sun.tools.javac.jvm.Gen.genCond(Gen.java:786)
[javac] at com.sun.tools.javac.jvm.Gen.genCond(Gen.java:739)
[javac] at com.sun.tools.javac.jvm.Gen.visitBinary(Gen.java:1841)
[javac] at com.sun.tools.javac.tree.Tree$Binary.accept(Tree.java:926)
[javac] at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:806)
[javac] at com.sun.tools.javac.jvm.Gen.genCond(Gen.java:786)
...
...
...
Я попытался передать ряд аргументов JVM, таких как -Xss, -Xmx, -Xoss и т. Д., Как в командной строке, так и в задаче Ant javac, но всегда получаю одну и ту же ошибку.
Из того, что я прочитал, кажется, что Eclipse IDE имеет компилятор, который отличается от Sun JDK. Есть ли способ заставить JDK компилироваться аналогично Eclipse?
Спасибо,
Stef
Это странно, но я обнаружил, что могу скомпилировать код с JDK 1.6.
Это не решает мою проблему, потому что код используется как библиотека другим проектом, и он жалуется и компилирует номера версий, так как JDK 1.5 является стандартом проекта на данный момент (и будет в течение еще нескольких месяцев).
Кто-нибудь знает, что изменилось в 1.6, и возможно ли применить эти изменения к 1.5 с помощью флагов?