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"
что ошибка ушла.
Установите Java SDK.
Добавьте переменную системной среды с именем JAVA_HOME со значением местоположения JDK.
Перейдите в Панель управления \ Система и безопасность \ Система. Расширенные настройки системы, переменные среды, системные переменные, новый... Пример:
Имя переменной: JAVA_HOME
Значение переменной: C: \ Program Files \ Java \ jdk1.7.0_21Закройте / повторно откройте окно 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