Ответ 1
Да, вы загрузили и установили Java Runtime Environment (JRE) вместо Java Development Kit (JDK). У последнего есть tools.jar, java.exe, javac.exe и т.д.
Я строил проект на 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
не существует.
Да, вы загрузили и установили 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
работало для меня
Установите переменную окружения 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
. Скопируйте и вставьте его в папку ant bin
, затем попробуйте использовать команду ant -version
.
Вы должны увидеть ожидаемый результат.
У меня была такая же проблема на Linux-машине. Сначала я был очень расстроен, потому что я установил JDK и JRE. Я использую версии 1.6, 1.7 и 1.8 одновременно, и я много играл с альтернативами, чтобы все было правильно настроено.
Проблема была довольно глупой для решения, но противоречащей интуиции. В то время как я использовал правильный JDK, я обратил внимание на путь инструментов jar maven, которым жаловался - он ожидал, что он будет
$JAVA_HOME\..\lib\tools.jar
Переменная $JAVA_HOME
указала непосредственно на мою папку jdk
(/usr/local/java
, которая также была правильной записью $PATH
и альтернативной символической ссылкой). Он фактически ищет папку 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.
перейти к вашему пути 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"
У меня была такая же проблема даже после установки Java JDK и установки JAVA_HOME
в ..\jdk1.6.0_45\bin
.
Ant все еще пытается найти tools.jar
в папке C:\Program Files\Java\jre6\lib
.
Я исправил его, добавив переменную среды JAVACMD
и установив путь для нее в java.exe
в папке jdk
.
В моем случае это было C:\Program Files\Java\jdk1.6.0_45\bin\java.exe
В окне eclipse > предпочтения > Java > Установленный JRE я указал каталог в каталог jre в jdk 1.7, и я работал файл для меня например, C:\Program Files\Java\jdk1.7.0_71\jre
У меня был мой JDK_path (C:\Program Files\Java\jdk1.7.0_79
) в моем JAVA_HOME
, а также в JDK_path\bin в моем PATH
. Но все же мой ant использовал JRE вместо JDK.
Проблема заключалась в том, что я имел C:\ProgramData\Oracle\Java\javapath
перед моим JDK_path в переменной PATH
. Я просто переместил свой JDK_path перед оракулом, и проблема была решена.
У вас может возникнуть аналогичная проблема на 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
Убедитесь, что в вашу переменную PATH добавлены как% JAVA_HOME%, так и% JAVA_HOME%/bin.
Все ответы о копировании tools.jar в правильное положение в лучшем случае - плохая идея.
Убедитесь, что ваша IDE может найти эти банки так, как она была разработана и предназначена для.
он был решен со мной в windows os, установив переменную JAVA_HOME перед запуском следующим образом:
установить JAVA_HOME = C:\Program Files\Java\jdk1.8.0_111
Если вы установили JDK 9.0.1, у вас также будет эта проблема, поскольку tools.jar устарел. См. Документ миграции.
Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
если вы установили jdk, тогда
..Java/jdkx.x.x
папка должна существовать там, поэтому в режиме ожидания и дать полный путь, как
C:\Program Files\Java\jdk1.6.0\lib\tools.jar
Убедитесь, что ваш путь к классам установлен правильно и указывает на правильную версию установленного JDK. Кроме того, вы используете Open JDK? У меня была эта проблема до того, как я попытался перейти от открытого JDK к Suns JDK. Это является примером того, как эта проблема может быть исправлена.
maven-compiler-plugin использует jdk, а не jre, tools.jar находится в папке C:\Program Files\Java\jdk1.6.0\lib\tools.jar вы должны настроить проект JRE System Libary с помощью jdk, а не jar. Это самое простое решение.
Решая эту проблему, я просто скопировал файл tools.jar из C:\Program Files\Java\jre1.8.0_112\lib в C:\Program Files\Java\jdk1.8.0_112\lib, так что у меня есть два tools.jar вместо одного и проблема исчезла.
Для меня какая работа: я загрузил старую версию Java 1.7
Я фактически установил свой JAVA_HOME из C:/программных файлов X86/Java, но после установки версии 1.7 у меня была другая Java в программных файлах /Java. И в этот момент я нашел здесь tools.jar. Затем я изменил этот новый путь и работал
Я также столкнулся с той же ошибкой. Это было удалено после установки пути Java_Home к C:\Program Files\Java\jdk1.8.0_121. Пожалуйста, убедитесь, что bin не включен в путь, и после jdk1.8.0_121 после того, как вы определили% JAVA_HOME%\bin в переменной пути к системе, нет косой черты.
Если вы находитесь в среде RHEL, имя пакета, содержащее tools.jar, заканчивается "openjdk-devel".
Это решение для Windows: в компьютере> Расширенные системные настройки> Дополнительно> Переменные окружения..., добавьте это в Системные переменные:
Я загрузил tools.jar, и после этого я скопировал его в путь в сообщении об ошибке.
C:\Program Files\Java\jdk-11.0.1\bin> вставьте здесь tools.jar
После этого я перезапустил Spring Tool Suit 4 и все работало. Когда я пытался исправить эту проблему, я создал новую переменную окружения: Control Panel/System/Advenced/Environmental variables/new Имя: JAVA_HOME Значение: C:\Program Files\Java\jdk-11.0.1 Но я не знаю, есть ли это необходимо.
возможно, вы обновили JRE в ОС, и добавление добавило в "путь" переменных среды запись ".../Oracle/jer", которая перезаписывает ваш JAVA_HOME. попробуйте удалить его из "пути", оставив JAVA_HOME.
Как уже упоминали многие, похоже, что вы ищете в своем инструменте JRE вместо JDK файл tools.jar.
Я также хотел бы отметить, что в последних версиях JDK больше нет файла tools.jar. Я скачал самый последний JDK на сегодняшний день (версия 12 JDK), и я не смог найти ни одного tools.jar. Мне пришлось загрузить версию 8 JDK (1.8.0) здесь https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, чтобы получить файл tools.jar. Я скачал эту версию, взял файл tools.jar и поместил его в папку lib моей последней версии.