Невозможно найти tools.jar при запуске ant

При запуске ant я получаю следующее сообщение:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

У меня JAVA_HOME установлен на C:\Program Files\Java\jdk1.7.0_02, PATH включает C:\Program Files (x86)\Java\jdk1.7.0_02\bin, CLASSPATH включает C:\Program Files (x86)\Java\jdk1.7.0_02, а ANT_HOME установлен на C:\ant.

Кажется, что ant игнорирует все эти настройки и ищет tools.jar где-то еще. Нет переменных среды, указывающих на путь jre6. Есть идеи, почему?


person john    schedule 02.02.2012    source источник
comment
вы уверены, что в папке ant нет настроек пути к классам?   -  person kosa    schedule 03.02.2012
comment
Не то чтобы я мог сказать, но, возможно, я что-то упускаю. Что я буду искать, чтобы это найти?   -  person john    schedule 03.02.2012
comment
Пожалуйста, проверьте путь JAVA_HOME к переменной вашей системной среды ... Он должен быть похож на C: \ Program Files \ Java \ jdk1.6.0_12 \ и попробуйте убить весь процесс java и попробуйте после того, как он запустится на 100%.   -  person Dhrumil Shah    schedule 20.03.2013
comment
Установите JDK, добавьте новую системную переменную JAVA_HOME в ‹путь к папке SDK Java› и добавьте JAVA_HOME% \ bin в путь к системной переменной   -  person Mandeep Pasbola    schedule 08.07.2014
comment
возможно, вы обновили JRE в ОС, и добавление добавило в путь переменных среды запись ... / Oracle / jer, которая перезаписывает ваш JAVA_HOME. попробуйте удалить его с пути, оставив JAVA_HOME.   -  person pagurix    schedule 31.01.2019


Ответы (5)


Есть два каталога, которые выглядят как JDK.

  C:\Program Files\Java\jdk1.7.0_02
  C:\Program Files (x86)\Java\jdk1.7.0_02\

Это может быть связано с установленным как 64-битным, так и 32-битным JDK? Что бы ни случилось, java.exe, увиденный ant.bat, должен быть из JDK. Если java.exe JRE идет первым в пути, он будет использоваться для определения местоположения JDK.

Поместите C: \ Program Files (x86) \ Java \ jdk1.7.0_02 \ bin или C: \ Program Files \ Java \ jdk1.7.0_02 в качестве первого аргумента в пути.

Дальнейшие шаги:

Вы можете взять вывод ant -diagnostics и поискать интересные ключи. (при условии, что Sun / Oracle JDK).

 java.class.path 
 java.library.path
 sun.boot.library.path

(в моем случае tools.jar появляется в java.class.path)

person Jayan    schedule 04.02.2012
comment
Спасибо за подсказку -diagnostics. Это показывает, что системное свойство java.home указывает на 1.6 JRE, несмотря на то, что все переменные среды указывают на 1.7. Не решает проблему, но является отправной точкой для дальнейшего исследования. - person john; 17.02.2012
comment
муравей ожидает "JDK". Сначала должен появиться java.exe из JDK. См. Комментарий Мадса Хансена. - person Jayan; 17.02.2012
comment
У меня такая же ошибка. Когда я попробовал ant -diagnostics, я получил java.home: C: \ Program Files \ Java \ jre6, но я установил JAVA_HOME на C: \ Program Files (x86) \ Java \ jdk1.6.0_25 .В чем проблема - person user1767260; 18.01.2013
comment
@ user1767260: это первая запись в пути C: \ Program Files (x86) \ Java \ jdk1.6.0_25? - person Jayan; 18.01.2013
comment
Нет .. но здесь нет записи для jre. - person user1767260; 18.01.2013
comment
@ user1767260: откройте командное окно и попробуйте «где java». - person Jayan; 18.01.2013
comment
C: \ Windows \ System32 \ java.exe C: \ Program Files (x86) \ Java \ jdk1.6.0_25 \ bin \ java.exe - person user1767260; 18.01.2013
comment
Есть идеи? Я застрял в этом iisue :( - person user1767260; 18.01.2013
comment
Java.exe в system32 является фиктивным: см. mindprod.com/jgloss/javaexe.html#MULTIPLES. Вы можете поместить свой JDK / bin в качестве первой записи. - person Jayan; 18.01.2013

У меня также была такая же проблема. Поэтому я просто удалил путь JDK с конца и поместил его в начало еще до всех путей System или Windows 32.

Раньше было так:

C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \; C: \ Users \ Rajkaran \ AppData \ Local \ Smartbar \ Application \; C: \ Users \ Rajkaran \ AppData \ Local \ Smartbar \ Application \; C: \ Program Files \ doxygen \ bin; % JAVA_HOME% \ bin;% ANT_HOME% \ bin

Итак, я сделал это так:

% JAVA_HOME% \ bin; C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \; C: \ Users \ Rajkaran \ AppData \ Local \ Smartbar \ Application \; C: \ Users \ Rajkaran \ AppData \ Local \ Smartbar \ Application \; C: \ Program Files \ doxygen \ bin;% ANT_HOME% \ bin

person Raj    schedule 19.01.2013
comment
Выполнение команды типа '' 'where java' '', которая перечислит, находится ли java в этих других каталогах и имеет ли приоритет над вашим путем JAVA_HOME и какая java является первой. Это может показать, какой другой путь мешает этому. Я видел, как другие установки java (JRE и JDK) помещают java также в ProgramData \ Oracle и Windows \ System32, поэтому вместо этого вы можете удалить java-программы из этих каталогов. - person user1207381; 17.10.2017

Порядок элементов в PATH имеет значение. Если существует несколько записей для различных установок Java, будет использоваться первая из PATH.

У меня были аналогичные проблемы после установки продукта, такого как Oracle, который помещает it JRE в начало PATH.

Убедитесь, что JDK, который вы хотите загрузить, является первой записью в вашем PATH (или, по крайней мере, он появляется до появления C:\Program Files\Java\jre6\bin).

person Mads Hansen    schedule 05.02.2012

Убедитесь, что вы используете корневую папку JDK. Не добавляйте «\ lib» в конец пути, где физически находится tools.jar. Мне потребовался час, чтобы понять это. Кроме того, этот пост поможет показать вам, где Ant ищет tools.jar:

Почему ANT сообщает мне, что JAVA_HOME неверен, а это не так?

person Lou Morda    schedule 20.09.2012