Установка целевой версии 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.

Другие вопросы по тегам