Собираете код Java, написанный для 1,5 для работы с 1.4 JRE?
-
13-09-2019 - |
Вопрос
У меня есть проект, который использует дженерики и несколько битов Java 1,5/6. Можно ли составить этот код для работы над системой, работающей на 1.4 JRE?
Я использую сценарий сборки муравья и задачу 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, чтобы сделать эту работу?
Решение
Я не использовал ни одного из этих решений, но есть
- Retroweaver
- Указание неподдерживаемой
-target jsr14
май Работа - Ретротранслатор
- Декларист
- Jbossretro
Вы также можете найти javac -XD-printflat
Полезно (хотя позаботьтесь о том, чтобы не перезаписать свой первоначальный источник).
Другие советы
У меня есть проект, который использует дженерики и несколько битов Java 1,5/6. Можно ли составить этот код для работы над системой, работающей на 1.4 JRE?
Нет.
Придется ли мне пройти через весь свой код и изменить материал 1.5, чтобы сделать эту работу?
Да. Но есть способ автоматизировать это, используя инструмент под названием Retroweaver. Анкет Нет никакой гарантии, что это все поймает.
У меня был хороший опыт работы с ретротранслатором (Retroweaver не работал с тем, что мне нужно, не могу вспомнить именно то, что).
Это работало очень хорошо для моей цели (создание версий HORBACK) JDK1.4.
Дженерики реализованы путем стирания типа, поэтому они должны работать до введения дженериков. Однако вы не сможете скомпилировать код с более старой версией компилятора (я не знаю, почему вы хотели бы это сделать)