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
Ответ 10
Если вы не используете eclipse. Затем вы можете изменить свойство ant java непосредственно в файле, как указано здесь.
http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-java-version.html
Ответ 11
Если вы запустите Ant из eclipse, eclipse будет использовать jdk или jre, которые настроены в пути класса (путь сборки).
Ответ 12
Используйте следующие 2 свойства для тега javac
:
fork="yes"
executable="full-path-to-the-javac-you-want-to-use".
Объяснение свойств можно найти здесь
Ответ 13
В соответствии с документацией Ant установите переменную среды JAVACMD
, чтобы завершить путь к java.exe
версии JRE, который вы хотите запустить Ant под.
Ответ 14
По умолчанию Ant будет рассматривать JRE как версию JRE рабочего пространства. Вам необходимо изменить в соответствии с вашей требуемой версией, следуя ниже.
В Eclipse:
-
Щелкните правой кнопкой мыши на файле build.xml, нажмите "Запустить как", нажмите "Внешний инструмент"
Конфигурации... "Выберите вкладку JRE.
-
Выберите JRE, который вы используете.
-
Повторно запустите задачу, теперь все должно быть хорошо.