Unable to locate tools.jar

I am building a project in Java.

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

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

I have installed a JDK and the folder: C:\Program Files\Java\jre6\lib is in my system but the file tools.jar не там.

36 ответов

Решение

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

В случае, если это по-прежнему проблема для всех, у меня есть немного разъяснений по предыдущим ответам. Я столкнулся с этой же проблемой, используя 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" что ошибка ушла.

  1. Установите Java SDK.

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

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

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

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

Установите свой JAVA_HOME переменная среды, чтобы указать на C:\Program Files\Java\jdk1.7.0_02,

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

sudo apt-get install openjdk-7-jdk openjdk-7-jre

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

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

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

C:\Program Files\Java\jdk1.6.0_24

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

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

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

У меня была такая же проблема на машине с 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) - есть на самом деле jre папка внутри установочного каталога JDK, который поставляется с каждым 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.

Стоит отметить, что tools.jar был удален из JDK, начиная с Java 9. https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-055EA9F4-835E-463F-B9E1-9081B3D9E55D

Если люди сталкиваются с этой проблемой при компиляции Java-программы с JDK 9+, вам может потребоваться проверить зависимости ваших проектов.

В моем случае я пытался скомпилировать проект, используя AspectJ и плагин Maven. org.codehaus.mojo:aspectj-maven-plugin:1.11. После поиска в Интернете я нашел альтернативу, поддерживающую Java 9+: dev.aspectj:aspectj-maven-plugin:1.13.M3.

Перейдите на путь JDK, где вы установили Java

Например, в моем компьютере JDK установлен по следующему пути

"C:\Program Files\Java\jdk1.7.0_17\";

После перейдите в папку lib, например, "C:\Program Files\Java\jdk1.7.0_17\lib"

в каталоге lib находится файл tool.jar

Скопируйте этот файл и вставьте его в lib forlder каталога jre7, например,

"C:\Program Files\Java\jre7\lib"

Вы можете столкнуться с подобной проблемой в Ubuntu:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

Проблема с JAVA_HOME, который не установлен должным образом.

Итак, на Ubuntu 14.04 x64 с использованием Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Как уже упоминали многие, похоже, что вы ищете в своем инструменте JRE вместо JDK файл tools.jar.

Я также хотел бы отметить, что в последних версиях JDK больше нет файла tools.jar. Я скачал самый последний JDK на сегодняшний день (версия 12 JDK), и я не смог найти ни одного tools.jar. Мне пришлось скачать JDK версии 8 (1.8.0) здесь https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html чтобы получить файл tools.jar. Я скачал эту версию, взял файл tools.jar и поместил его в папку lib моей последней версии.

У меня была такая же проблема даже после установки Java JDK и установки JAVA_HOME в ..\jdk1.6.0_45\bin папка.

Муравей все еще пытается найти tools.jar в C:\Program Files\Java\jre6\lib папка.
Я исправил это, добавив JAVACMD переменная окружения и установить путь к ней java.exe в jdk папка.
В моем случае это было C:\Program Files\Java\jdk1.6.0_45\bin\java.exe

У меня был мой JDK_path (C:\Program Files\Java\jdk1.7.0_79) в моем JAVA_HOME а также JDK_path\bin в моем PATH, Но мой муравей все же использовал JRE вместо JDK.

Вопрос был у меня C:\ProgramData\Oracle\Java\javapathдо моего JDK_path в PATH переменная. Я просто перенес свой JDK_path до оракула, и проблема решена.

В окне "Затмение"> "Настройки"> "Java"> "Установленная JRE" я указал каталог на каталог jre в jdk 1.7, и я обработал для меня файл, например C:\Program Files\Java\jdk1.7.0_71\jre

Это было решено со мной в Windows OS путем установки переменной JAVA_HOME перед запуском следующим образом:

set JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_111

Убедитесь, что в переменную PATH добавлены пути%JAVA_HOME% и%JAVA_HOME%/bin.

Все ответы о копировании tools.jar в правильную позицию - в лучшем случае плохая идея.

Убедитесь, что ваша IDE может найти эти банки так, как они были спроектированы и предназначены.

Решая эту проблему, я просто скопировал файл tools.jar из C:\Program Files\Java\jre1.8.0_112\lib в C:\Program Files\Java\jdk1.8.0_112\lib, чтобы у меня было два tools.jar файлы вместо одного и проблема исчезла.

Я также столкнулся с той же ошибкой. Это было удалено после установки пути Java_Home в C:\Program Files\Java\jdk1.8.0_121. Убедитесь, что bin не включен в путь, и после jdk1.8.0_121 после слета%JAVA_HOME%\bin в переменной системного пути нет косой черты.

Если это помогает, проблема для меня заключалась в том, что у меня было 2 записи в моей переменной среды PATH, которые указывали на место, содержащее исполняемый файл javaw.

Я очистил переменную, чтобы убедиться, что "%JAVA_HOME%\bin" была единственной записью, ссылающейся на расположение, содержащее мои исполняемые файлы java.

Это происходит, когда переменная среды JAVA_HOME не установлена ​​или указывает на неправильный каталог. Вы можете увидеть значение, которое имеет Ant, выполнив команду:

ant -diagnostics

И ищу строку, которая показывает java.home. Если у вас естьgrep после установки вы можете просто запустить:

ant -diagnostics | grep java.home

Чтобы устранить проблему, установите JAVA_HOMEПеременная среды в каталог JDK. Хотя установка переменной немного отличается в *nix и Windows, остальное работает одинаково во всех операционных системах. Поэтому не имеет значения, используете ли вы графический интерфейс, предоставляемый Windows, илиset или setx команды, если значение установлено до вызова ant (если вы установили его глобально, он должен существовать до того, как вы откроете окно оболочки / терминала).

После установки JAVA_HOME Вы можете запустить ant -version, например, и получить результат, например

Apache Ant(TM) версии 1.10.8, скомпилированный 10 мая 2020 г.

Я скачал tools.jar и после этого скопировал его в путь в сообщении об ошибке.

C: \ Program Files \ Java \ jdk-11.0.1 \ bin> вставьте сюда tools.jar

После этого я перезапустил Spring Tool Suit 4 и все заработало. Когда я пытался решить эту проблему, я создал новую переменную среды: Панель управления / Система / Advenced / Переменные среды / новое Имя: JAVA_HOME Значение: C:\Program Files\Java\jdk-11.0.1 Но я не знаю, является ли это необходимо.

В последних версиях Java нет tools.jar в папке lib. Удалите запись tools.jar в переменных среды и повторите попытку.

Для меня, что работает: я скачал старую версию Java 1.7

Я фактически установил свой JAVA_HOME из C:/program files X86/Java, НО после того, как я установил версию 1.7, у меня была другая Java в программных файлах /Java. И в этот момент я нашел здесь tools.jar. Затем я перешел на этот новый путь, и он работает

Возможно , вы обновили JRE в ОС, и добавление добавило в "путь" переменных среды запись ".../Oracle/jer", которая перезаписывает ваш JAVA_HOME. попробуйте удалить его из "пути", оставив JAVA_HOME.

maven-compiler-plugin использует jdk, а не jre, tools.jar находится в C:\Program Files\Java\jdk1.6.0\lib\tools.jar, вы должны сконфигурировать проект JRE System Libary с помощью jdk, а не jar. Это самое простое решение.

Это решение для Windows: в разделе " Компьютер"> "Дополнительные параметры системы"> "Дополнительно"> "Переменные среды"... добавьте это в " Системные переменные":

  • Щелкните правой кнопкой мыши на вашем файле муравья
  • Перейдите к "Запуск от имени", затем нажмите "Сборка муравьев..."
  • Перейти на вкладку "JRE"
  • Выберите JDK, а не JRE
Другие вопросы по тегам