Kompilieren Sie Probleme bei der Verwendung von ant und Java 1.7

Ich versuche zu kompilieren einer code-Basis mit Hilfe von ant und die 1.7 javac-compiler.
Derzeit ist die Codebasis kompiliert mit dem 1,6-compiler, aber wenn ich auf die 1.7 compiler, bekomme ich die folgenden zwei Merkwürdigkeiten.

1) bekomme ich eine Warnung: "Warnung: x ist die interne proprietäre API und kann in einer zukünftigen Version entfernt", wobei x ist Teil eines internen proprietäre API noch die Zeile im code, auf den es verweist keine Referenz x (noch ist es Referenz x, die irgendwo in der angegebenen Datei). Dies geschah in ein paar Orte, und die Linie die Sie verweist, wird in einem Kommentar-block.

2) Die Kompilierung bricht mit der folgenden:

[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)

Relevanten Parameter, die in mein ant-Skript für javac sind:

      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"

Ich versucht, die änderung der Quell-und der Zielversion. Ich habe auch versucht ajusting die Größe des Arbeitsspeichers. Es scheint nicht zu helfen.

  • Dies ist fast sicher zu einem compiler-Fehler. Versuchen Sie eine neuere version von Java 7?
  • Es sagt stackoverflow. weiß nicht warum, aber Sie können versuchen, verwenden Sie einen größeren Stapel...
  • Seine nur 1 update hinter sich und ich habe nicht gefunden, alle bekannten Probleme mit dem compiler über eine Google-Suche. Dennoch, ich werde versuchen, was Sie vorschlagen.
  • Ich habe versucht, die Anpassung der maximalen Speicher und es führte noch in einen stackoverflow. Der 1,6-compiler hat keine Probleme mit der gleichen code-Basis.
  • Sind Sie Zunehmender Größe stack-oder heap-Größe? müssen Sie die stack-Größe: -Xss16M oder so
  • Die Erhöhung der stack-Größe, die scheint zu funktionieren. Die code-Basis zusammengestellt. Allerdings weiß ich immer noch nicht, warum bekam ich ein "x interne proprietäre API" - Warnung auf code, der es für Sie nicht gelten.
  • Die interne proprietäre API Warnung klingt wie ein problem innerhalb der javac-implementation; Sie sind wohl verweisen auf eine konkrete Umsetzung, wo Sie sein sollten verweisen auf eine Schnittstelle (spec). Ich würde nicht darum kümmern.
  • Es ist irgendwie komisch, da die code-Basis hat Verweise auf proprietäre APIs, nur nicht in der referenzierten Quelldateien. Der 1,6-compiler dies nicht tut. Aber es scheint nicht zu sein, dass Probleme auftreten.
  • Der gleiche Fehler aufgetreten, die mit Java 1.8 compiler. Die Erhöhung der stack-Größe für javac (-Xss16m) gelöst.
  • Wenn wir die Umstellung auf Java 8 wir hatten auch das gleiche Problem mit dem compiler. Wir haben es auf 5 MB und es funktioniert.

InformationsquelleAutor Avrom | 2012-07-17
Schreibe einen Kommentar