"Не удается найти 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. Любые идеи, почему?

Ответ 1

Существует два каталога, которые выглядят как 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. Если JRE java.exe входит первым в путь, это будет использоваться для угадывания местоположения 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)

Ответ 2

У меня также была такая же проблема. Поэтому я просто удалил путь 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\Инструменты\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

Ответ 3

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

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

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

Ответ 4

  • Попробуйте еще раз проверить это в соответствии с этим руководством: http://vietpad.sourceforge.net/javaonwindows.html

  • Попробуйте перезагрузить систему.

  • Если ничего, попробуйте запустить "cmd" и введите там "java", что-нибудь напечатать?

Ответ 5

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

Почему Ant говорит мне, что JAVA_HOME ошибочен, если это не так?