Я использую 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.
Я использую 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.
Просто эта проблема возникла из-за того, что я сначала добавил файл сборки в 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. Этот параметр запоминается для последующих прогонов.
Легко!
В Eclipse:
Щелкните правой кнопкой мыши на файле build.xml
нажмите "Запустить как", нажмите "Конфигурации внешнего инструмента..."
Выберите вкладку JRE. Выберите JRE, который вы используете.
Запустите задачу, теперь все должно быть хорошо.
В соответствии с ant manual настройка JAVA_HOME должна работать - вы уверены, что измененная настройка видна на ant?
В качестве альтернативы вы можете использовать переменную JAVACMD.
Вы можете использовать целевые и исходные свойства тега 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" />
Запустите ant в подробном режиме: ant -v и найдите подсказки.
Это можно сделать с помощью следующих шагов, если вы используете Eclipse IDE:
Щелкните правой кнопкой мыши на задаче в файле сборки ant (build.xml).
Наведите указатель мыши на "Запуск от имени", нажмите "Конфигурации внешнего инструмента...".
Добавьте в "Аргументы" следующие примечания:
-Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
В задаче javac вы можете указать, какой уровень совместимости (1.4, 1.5, 1.6) вы хотите использовать, вы можете установить значения "источника" и "целевого" уровня, проверьте документы здесь: Документация Javac
Это скорее старый вопрос, но я добавлю свои заметки для будущих ссылок.
У меня была аналогичная проблема, и я исправил ее, изменив порядок экспорта в переменной PATH.
Например, я использовал метод конкатенации строк в мой PATH (это просто пример):
$> export PATH='$PATH:'$JAVA_HOME
Если моя переменная PATH уже имела в ней java, последнее значение было бы бессмысленным, поэтому порядок имел бы значение. Чтобы решить эту проблему, я начал инвертировать ее, добавив сначала мою переменную, а затем добавив PATH.
Следуя этой идее, я перевернул порядок экспорта ANT_HOME. Добавление JAVA_HOME перед ANT_HOME.
Это может быть просто совпадение, но это сработало для меня.
Файл сборки:
<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
Если вы не используете eclipse. Затем вы можете изменить свойство ant java непосредственно в файле, как указано здесь.
http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-java-version.html
Если вы запустите Ant из eclipse, eclipse будет использовать jdk или jre, которые настроены в пути класса (путь сборки).
Используйте следующие 2 свойства для тега javac:
fork="yes"
executable="full-path-to-the-javac-you-want-to-use".
Объяснение свойств можно найти здесь
В соответствии с документацией Ant установите переменную среды JAVACMD, чтобы завершить путь к java.exe версии JRE, который вы хотите запустить Ant под.
По умолчанию Ant будет рассматривать JRE как версию JRE рабочего пространства. Вам необходимо изменить в соответствии с вашей требуемой версией, следуя ниже.
В Eclipse:
Щелкните правой кнопкой мыши на файле build.xml, нажмите "Запустить как", нажмите "Внешний инструмент" Конфигурации... "Выберите вкладку JRE.
Выберите JRE, который вы используете.
Повторно запустите задачу, теперь все должно быть хорошо.