Установка целевой версии Java в ant javac
Мне нужно скомпилировать файл JAR с помощью Ant (1.7.0) для запуска под определенной версией Java (1.5). У меня сейчас Java 1.6 на моей машине. Я пробовал установить:
<target name="compile">
<javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
Я также удалил
<property name="build.compiler" value="modern"/>
и нет файла свойств. Я использую Java 1.6 в Linux/SUSE
Также есть простой способ определить, какая версия Java ожидается в файле jar.
4 ответа
Используйте атрибут "target" и удалите атрибут "compiler". Смотрите здесь. Так должно получиться что-то вроде этого:
<target name="compile">
<javac target="1.5" srcdir=.../>
</target>
Надеюсь это поможет
И источник, и цель должны быть указаны. Я рекомендую указывать значения по умолчанию для ant, поэтому вам не нужно указывать атрибут source/target для каждой задачи javac:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
Посмотрите примечания кросс-компиляции Java для получения дополнительной информации.
Чтобы найти версию Java в файлах классов, которые я использовал:
javap -verbose <classname>
который объявляет версию в начале как
minor version: 0
major version: 49
что соответствует Java 1.5
Вы также можете установить {{ant.build.javac.target=1.5}}
Свойство ant для обновления целевой версии по умолчанию. См. http://ant.apache.org/manual/javacprops.html.