Ant использует неправильную версию java

Я использую Ant 1.7.0 и установлен java 1.6, который находится в JAVA_HOME.

Я хочу создать проект с помощью java 1.5, поэтому я экспортировал JAVA_HOME в каталог java 1.5.

java -version

говорит "1.5". Когда я запускаю Ant, он использует java 1.6.

Ответ 1

Просто эта проблема возникла из-за того, что я сначала добавил файл сборки в ant -view, когда стандартная JRE была 1.6.

Не было никакого JRE, специфичного для проекта, и я изменил значение по умолчанию на 1.5, даже затмение работало в 1.5, а JAVA_HOME - тоже 1.5. Запуск цели ant из командной строки, используемой JRE 1.5, но в пределах затмения он все еще использовал 1.6.

Мне нужно было щелкнуть правой кнопкой мыши по объекту ant, выбрать Run As... и изменить JRE на вкладке JRE. Этот параметр запоминается для последующих прогонов.

Ответ 2

Легко!

В Eclipse:

  • Щелкните правой кнопкой мыши на файле build.xml

  • нажмите "Запустить как", нажмите "Конфигурации внешнего инструмента..."

  • Выберите вкладку JRE. Выберите JRE, который вы используете.

Запустите задачу, теперь все должно быть хорошо.

Ответ 3

В соответствии с ant manual настройка JAVA_HOME должна работать - вы уверены, что измененная настройка видна на ant?

В качестве альтернативы вы можете использовать переменную JAVACMD.

Ответ 4

Вы можете использовать целевые и исходные свойства тега javac для установки целевой среды выполнения. В приведенном ниже примере будет скомпилирован любой исходный код для целевой версии 1.4 для любого компилятора, поддерживающего версию 1.4 или новее.

<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">

Примечание: 'srcdir' и 'destdir' являются значениями свойств, заданными else, где в build script, например <property name="classes" value="c:/classes" />

Ответ 5

Запустите ant в подробном режиме: ant -v и найдите подсказки.

Ответ 6

Это можно сделать с помощью следующих шагов, если вы используете Eclipse IDE:

  • Щелкните правой кнопкой мыши на задаче в файле сборки ant (build.xml).

  • Наведите указатель мыши на "Запуск от имени", нажмите "Конфигурации внешнего инструмента...".

  • Добавьте в "Аргументы" следующие примечания:

    -Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
    

Ответ 7

В задаче javac вы можете указать, какой уровень совместимости (1.4, 1.5, 1.6) вы хотите использовать, вы можете установить значения "источника" и "целевого" уровня, проверьте документы здесь: Документация Javac

Ответ 8

Это скорее старый вопрос, но я добавлю свои заметки для будущих ссылок.

У меня была аналогичная проблема, и я исправил ее, изменив порядок экспорта в переменной PATH.

Например, я использовал метод конкатенации строк в мой PATH (это просто пример):

$> export PATH='$PATH:'$JAVA_HOME

Если моя переменная PATH уже имела в ней java, последнее значение было бы бессмысленным, поэтому порядок имел бы значение. Чтобы решить эту проблему, я начал инвертировать ее, добавив сначала мою переменную, а затем добавив PATH.

Следуя этой идее, я перевернул порядок экспорта ANT_HOME. Добавление JAVA_HOME перед ANT_HOME.

Это может быть просто совпадение, но это сработало для меня.

Ответ 9

Файл сборки:

<target name="print-version"> 
   <echo>Java/JVM version: ${ant.java.version}</echo> 
   <echo>Java/JVM detail version: ${java.version}</echo> 
</target>

Вывод:

[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08

Ответ 11

Если вы запустите Ant из eclipse, eclipse будет использовать jdk или jre, которые настроены в пути класса (путь сборки).

Ответ 12

Используйте следующие 2 свойства для тега javac:

fork="yes"  
executable="full-path-to-the-javac-you-want-to-use".

Объяснение свойств можно найти здесь

Ответ 14

По умолчанию Ant будет рассматривать JRE как версию JRE рабочего пространства. Вам необходимо изменить в соответствии с вашей требуемой версией, следуя ниже.

В Eclipse:

  • Щелкните правой кнопкой мыши на файле build.xml, нажмите "Запустить как", нажмите "Внешний инструмент" Конфигурации... "Выберите вкладку JRE.

  • Выберите JRE, который вы используете.

  • Повторно запустите задачу, теперь все должно быть хорошо.