Компиляция Java-кода, написанного для 1.5, для работы с 1.4 JRE? - PullRequest
7 голосов
/ 10 июня 2009

У меня есть проект, который использует дженерики и несколько кусочков Java 1.5 / 6. Можно ли скомпилировать этот код для работы в системе под управлением 1.4 JRE?

Я использую скрипт сборки ANT и задачу javac для компиляции библиотеки. Это прекрасно работает, в то время как целевой атрибут равен 1,5.

Если я изменяю цель на 1.4, я получаю следующую ошибку:

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

Поэтому я добавляю атрибут источника и пробую значение 5 и 1,5. Новая ошибка:

javac: source release 5 requires target release 1.5

Должен ли я пройти через весь мой код и изменить материал 1.5, чтобы это работало?

Ответы [ 4 ]

7 голосов
/ 10 июня 2009

Я не использовал ни одно из этих решений, но есть

  1. Retroweaver
  2. указание неподдерживаемого -target jsr14 может работать
  3. Retrotranslator
  4. Declawer
  5. JBossRetro

Вы также можете найти javac -XD-printflat полезным (хотя будьте осторожны, чтобы не перезаписать исходный источник).

6 голосов
/ 10 июня 2009

У меня есть проект, который использует дженерики и несколько кусочков Java 1.5 / 6. Можно ли скомпилировать этот код в работать в системе под управлением 1.4 JRE?

номер

Я собираюсь пройти через все мой код и изменить 1,5 вещи на сделать эту работу?

Да. Но есть способ автоматизировать это, используя инструмент под названием Retroweaver . Там нет гарантии, что он поймает все, хотя.

1 голос
/ 10 июня 2009

У меня был хороший опыт работы с Ретротранслятором (ретроверстка плохо работала с тем, что мне было нужно, точно не помню, что именно).

Это очень хорошо сработало для моей цели (создание версий Logback для JDK1.4).

http://retrotranslator.sourceforge.net/

0 голосов
/ 10 июня 2009

Обобщения реализуются с помощью стирания типов, поэтому они должны работать до появления обобщения. Однако вы не сможете скомпилировать код с более старой версией компилятора (я не знаю, почему вы захотите это сделать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...