Question

J'ai un projet qui utilise des génériques et quelques bits Java 1.5 / 6. Est-il possible de compiler ce code pour travailler sur un système exécutant un 1,4 JRE?

J'utilise un script de build Ant et une tâche Javac pour compiler la bibliothèque. Cela se construit bien tandis que l'attribut cible est de 1,5.

Si je change la cible pour être 1.4, j'obtiens l'erreur suivante:

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

J'ajoute donc un attribut source et j'essaie une valeur de 5 et 1,5. Nouvelle erreur:

javac: source release 5 requires target release 1.5

Vais-je devoir passer par tout mon code et changer les choses 1.5 pour que cela fonctionne?

Était-ce utile?

La solution

Je n'ai utilisé aucune de ces solutions, mais il y a

  1. Rétro-arme
  2. spécifiant le non pris en charge -target jsr14 peut travailler
  3. Rétrotranslateur
  4. Instructeur
  5. JBosSretro

Vous pourriez également trouver javac -XD-printflat Utile (bien que preniez soin de ne pas écraser votre source d'origine).

Autres conseils

J'ai un projet qui utilise des génériques et quelques bits Java 1.5 / 6. Est-il possible de compiler ce code pour travailler sur un système exécutant un 1,4 JRE?

Non.

Vais-je devoir passer par tout mon code et changer les choses 1.5 pour que cela fonctionne?

Oui. Mais il existe un moyen d'automatiser cela, en utilisant un outil appelé Rétro-arme. Il n'y a aucune garantie que cela attrapera tout.

J'ai eu une bonne expérience avec le rétrotranslateur (Retroweaver n'a pas bien fonctionné avec ce dont j'avais besoin, je ne me souviens pas exactement quoi).

Cela a très bien fonctionné pour mon objectif (création de versions JDK1.4 de Logback).

http://retrotranslator.sourceforge.net/

Les génériques sont mis en œuvre par effacement de type, ils devraient donc fonctionner avant l'introduction des génériques. Cependant, vous ne pourriez pas compiler le code avec une ancienne version du compilateur (je ne sais pas pourquoi vous voudriez le faire)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top