Невозможно найти tools.jar - PullRequest
       26

Невозможно найти tools.jar

171 голосов
/ 20 апреля 2011

Я строю проект на Java.

У меня есть эта ошибка:

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

Я установил JDK и папка: C:\Program Files\Java\jre6\lib находится в моей системе, но файл tools.jar отсутствует.

Ответы [ 29 ]

181 голосов
/ 20 апреля 2011

Да, вы загрузили и установили Java Runtime Environment (JRE) вместо Java Development Kit (JDK). В последнем есть tools.jar, java.exe, javac.exe и т. Д.

86 голосов
/ 09 мая 2012

В случае, если это все еще проблема для всех, у меня есть немного разъяснений относительно предыдущих ответов. Я столкнулся с этой же проблемой, используя ant с установленным JDK. Хотя установщик JDK дал мне такую ​​структуру каталогов:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

и когда я запустил ant, он пожаловался на то, что не нашел tools.jar в подкаталоге jre7. Только когда я set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04" ошибка исчезла.

38 голосов
/ 21 мая 2013
  1. Установите Java SDK .

  2. Добавить системную переменную среды с именем JAVA_HOME со значением местоположения JDK.
    Перейдите в Панель управления \ Система и безопасность \ Система. Расширенные настройки системы, переменные среды, системные переменные, новый ... Пример:
    Имя переменной: JAVA_HOME
    Значение переменной: C: \ Program Files \ Java \ jdk1.7.0_21

  3. Закройте / снова откройте окно CMD, чтобы новая переменная вступила в силу перед попыткой повторного запуска команды ant.

27 голосов
/ 18 марта 2013

У меня была такая же проблема, и копирование C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar в C:\Program Files\Java\jre6\lib\ext работало для меня

10 голосов
/ 01 октября 2014

Если вы работаете в Linux, вы можете решить эту проблему, установив в систему java:

sudo apt-get install openjdk-7-jdk openjdk-7-jre
10 голосов
/ 25 января 2013

Установите переменную окружения JAVA_HOME, указав C:\Program Files\Java\jdk1.7.0_02.

7 голосов
/ 20 апреля 2011

Нет, согласно вашей структуре каталогов, вы установили JRE, а не JDK.Есть разница.

C:\Program Files\Java\jre6\lib
                      ^^^^

Это должно быть что-то вроде:

C:\Program Files\Java\jdk1.6.0_24
5 голосов
/ 29 сентября 2012

Не тратьте слишком много времени на поиск tools.jar. Если вы получаете такую ​​ошибку, не расстраивайтесь.

Если у вас уже есть java JDK 1.5, перейдите в папку lib, и там должна быть доступна tools.jar. Скопируйте и вставьте его в папку ant bin, затем попробуйте использовать команду ant -version.

Вы должны увидеть ожидаемый результат.

4 голосов
/ 24 июня 2015

У меня была такая же проблема на машине с Linux. Сначала я был очень разочарован, потому что я установил JDK и JRE. Я использую версии 1.6, 1.7 и 1.8 одновременно, и я много играл с альтернативами, чтобы все было установлено правильно.

Проблема была довольно глупой, но нелогичной. Пока я использовал правильный JDK, я обратил внимание на путь инструментов, на которые жаловался Джар Мейвен - он ожидал, что он будет

$JAVA_HOME\..\lib\tools.jar

Переменная $JAVA_HOME указывала непосредственно на мою папку jdk (/usr/local/java, которая также была правильной записью $PATH и альтернативной ссылкой sym). На самом деле он ищет lib папку вне каталога java, потому что:

$JAVA_HOME\..\lib\tools.jar

разрешит до

/usr/local/lib/tools.jar

и это недопустимое местоположение.

Чтобы решить эту проблему, переменная $JAVA_HOME должна вместо этого указать на это местоположение /usr/local/java/jre (при условии, что путь JDK равен /usr/local/java) - на самом деле в каталоге установки JDK есть папка jre, которая поставляется с каждым JDK. Эта новая установка заставит maven взглянуть на каталог JRE, который является частью JDK:

$JAVA_HOME\..\lib\tools

, который теперь разрешается до

/usr/local/java/jre/../lib/tools.jar

и, наконец,

/usr/local/java/lib/tools.jar

, где действительно находится tools.jar.

Итак, даже если вы действительно используете JDK вместо JRE, $ JAVA_HOME должен указывать на JRE. Помните, что альтернатива ОС все еще должна ссылаться на JDK.

4 голосов
/ 27 декабря 2017

Если вы установили JDK 9.0.1, у вас также будет эта проблема, так как tools.jar устарела. См. миграционный документ .

...