Почему ANT говорит мне, что JAVA_HOME не так, когда это не так? - PullRequest
58 голосов
/ 13 октября 2009

Я получаю ошибку:

C: \ dev \ ws \ springapp \ build.xml: 81: Невозможно найти компилятор javac; com.sun.tools.javac. Главное не в пути к классам. Возможно, JAVA_HOME не указывает на JDK. В настоящее время установлено значение «C: \ Program Files \ Java \ jre6»

Но я явно установил мой JAVA_HOME как C: \ Program Files \ Java \ jdk1.6.0_14

Где ANT получает это значение?

Ответы [ 24 ]

2 голосов
/ 28 марта 2014

Когда все остальное правильно, попробуйте следующее

  1. Окно перехода -> Настройки -> Ant -> Время выполнения -> ClassPath
  2. Разверните Глобальные записи и проверьте доступные здесь инструменты jdk.
  3. Добавьте требуемый tools.jar из определенной версии Java, например, «C: \ Program Files \ Java \ jdk1.6.0_45 \ lib \ tools.jar»
  4. Теперь соберите и проверьте результаты.

Примечание: добавьте tools.jar для компилятора java, который вы хотите использовать, и задайте ему предпочтение, переместив его вверх в списке tools.jar, когда присутствует несколько tools.jar (компиляторы java).

2 голосов
/ 26 января 2013

На самом деле нашел этот ответ на superuser.com, но мне пришлось скопировать tools.jar из моего каталога JDK \ lib в каталог JRE \ lib.

Имеет смысл ZERO ... Единственное, о чем я могу думать, это то, что Sun представила эту ошибку в последней среде выполнения Java (Java 7 Update 11) или ошибку в том, как она читает текущее местоположение JDK (JRE более обновлена) чем JDK, очевидно, что также глупо для Sun ... они должны выпускать JDK каждый раз, когда обновляют JRE).

Мой JAVA_HOME был установлен правильно. Я подтвердил, сделав "установить JAVA_HOME". Это указало на мой каталог JDK и было написано правильно. Однако Ant утверждал, что не может найти javac, но подумал, что JAVA_HOME находится в моем каталоге JRE.

Моя система работала нормально до последних обновлений Sun JRE7 (10 и 11). Ant версия 1.8.4

2 голосов
/ 31 марта 2011

Если у вас установлен JAVA_HOME, но в нем есть опечатка, вы также увидите поддельную ссылку на путь jre6.

2 голосов
/ 11 сентября 2012

Я столкнулся с той же проблемой, и проблема с решением проблемы была решена с помощью свойства исполняемого файла в теге javac, который должен быть указан как местоположение файла javac.exe. Это решило проблему

<javac srcdir="${srcDir}" destdir="${buildDir}" fork="true" executable="C:\Program Files\Java\jdk1.7.0_03\bin\javac"/>
1 голос
/ 14 января 2016

Просто установите путь JDK из следующих шагов:

  1. Перейти к «Выполнить» -> Внешние инструменты -> Настройка внешних инструментов

  2. -> Выбрать 'JRE' Затем из списка DropDown выберите доступный JDK. ех. jdk1.8.0_25

0 голосов
/ 20 июня 2014

Быстрая работа для того же -

Скопируйте C: \ Program Files \ Java \ jdk1.6.0_14 \ lib \ tools.jar в C: \ Program Files \ Java \ jre6 \ lib \

Это исключение наступает, потому что JAVA_HOME устанавливается как C: \ Program Files \ Java \ jre6, и Ant не может найти внутри него tools.jar.

0 голосов
/ 06 января 2014

была такая же проблема;

c:\jb\src\build.xml:191: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files\Java\jre7"

Total time: 0 seconds

c:\jb\src>echo %JAVA_HOME%
c:\Program Files\Java\jdk1.7.0_13

Решение:

path = c:\ant\bin\;%PATH%
path = c:\Program Files\Java\jdk1.7.0_17\bin;%PATH%
set "JAVA_HOME=c:\Program Files\Java\jdk1.7.0_13"

Я полагаю, что только инструкция jdk path сделает это, но мне лень выяснить, что решение выше - пуленепробиваемое. : -)

Также используется Windows7

0 голосов
/ 18 декабря 2013

К вашему сведению, я использую Windows 7 и мне пришлось перезапустить Windows, чтобы новые настройки JAVA_HOME вступили в силу.

0 голосов
/ 18 декабря 2013

Обычно возникает эта проблема. Я не могу установить какой-либо конкретный дом Java в моей системе, так как у меня есть две разные версии Java (Java 6 и Java 7) для разных сред. Чтобы решить эту проблему, я включил путь JDK в конфигурацию запуска при открытии файла build.xml. Таким образом, 2 разных файла сборки используют 2 разные версии Java для сборки. Я думаю, что могло бы быть лучшее решение этой проблемы, но по крайней мере вышеупомянутый подход избегает установки переменной JAVA_HOME.

0 голосов
/ 08 сентября 2013

Я столкнулся с этой проблемой при создании проекта с Дженкинсом. Во-первых, он не смог найти ant.bat, что было исправлено путем добавления пути к ant.bat к пути переменной системной среды. Тогда ant не смог найти каталог jdk. Это было исправлено путем щелчка правой кнопкой мыши по my computer > properties > advanced > environment variables и создания новой переменной среды с именем JAVA_HOME и присвоения ей значения C:\Program Files\Java\jdk1.7.0_21. Не создавайте эту переменную среды в пользовательских переменных. Создайте его только в системных переменных.
В обоих случаях мне пришлось перезагрузить систему.

...