Frage

Ich habe ein Projekt, das Generika und ein paar Java -1,5/6 -Bits verwendet. Ist es möglich, diesen Code für ein System zu erstellen, das ein 1.4 JRE ausführt?

Ich benutze ein Ant -Build -Skript und eine Javac -Aufgabe, um die Bibliothek zu kompilieren. Dies baut gut auf, während das Zielattribut 1,5 beträgt.

Wenn ich das Ziel auf 1.4 ändere, erhalte ich den folgenden Fehler:

generics are not supported in -source 1.4 
(use -source 5 or higher to enable generics)

Ich füge also ein Quellattribut hinzu und versuche einen Wert von 5 und 1,5. Neuer Fehler:

javac: source release 5 requires target release 1.5

Muss ich meinen gesamten Code durchgehen und die 1.5 Dinge ändern, um diese Funktion zu machen?

War es hilfreich?

Lösung

Ich habe keine dieser Lösungen verwendet, aber es gibt es

  1. Retroweaver
  2. Angabe des nicht unterstützten -target jsr14 kann Arbeit
  3. Retrotranslator
  4. Deklawer
  5. JBOSSRETRO

Sie könnten auch finden javac -XD-printflat Nützlich (achten Sie jedoch darauf, Ihre ursprüngliche Quelle nicht zu überschreiben).

Andere Tipps

Ich habe ein Projekt, das Generika und ein paar Java -1,5/6 -Bits verwendet. Ist es möglich, diesen Code für ein System zu erstellen, das ein 1.4 JRE ausführt?

Nein.

Muss ich meinen gesamten Code durchgehen und die 1.5 Dinge ändern, um diese Funktion zu machen?

Ja. Aber es gibt eine Möglichkeit, dies zu automatisieren, indem Sie ein Tool namens namens Retroweaver. Es gibt jedoch keine Garantie dafür, dass es alles fangen wird.

Ich habe gute Erfahrungen mit Retrotranslator gemacht (Retroweaver hat nicht gut mit dem gearbeitet, was ich brauchte, kann mich nicht genau erinnern).

Für meinen Zweck hat es sehr gut funktioniert (erstellen Sie JDK1.4 -Versionen von Logback).

http://retrotranslator.sourceforge.net/

Generika werden nach dem Typenlöscher implementiert, sodass sie arbeiten sollten, bevor die Generika eingeführt wurden. Sie könnten den Code jedoch nicht mit einer älteren Version des Compilers kompilieren (ich weiß nicht, warum Sie das tun möchten)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top