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

182

Я строю проект на 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там нет.

olidev
источник
Я думаю, что инструменты принадлежат JDK, а не JRE. Не так ли? C: \ Program Files \ Java \ jdk1.6.0_24 \ lib
Эдвин Далорсо,
4
Кроме того, я нахожу удивительным то, что программа на самом деле сказала, где она выглядела. Так мало программ предоставляют эту полезную подсказку.
Питер Флинн
Также см. Повторяющийся вопрос: stackoverflow.com/q/9119479/3328979 Ответы там как-то лучше, чем здесь.
Arashsoft

Ответы:

188

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

duffymo
источник
7
@olidev проверяет это сейчас, но все еще не может перестать указывать на проблему !! Как это может быть вашим ответом? Вы уже упоминали, что вы установили jdk и jre. Я на самом деле сталкиваюсь с подобной проблемой, и она все еще продолжается :-(. Нужно знать, как у вас это работает ??
Наемник
7
Добавьте JAVA_HOME и каталог / bin к своему пути. Вы понимаете, что этому ответу два года, верно?
duffymo
17
В Ubuntu: # apt-get install default-jdkи ошибка исчезает.
Хави Монтеро
2
Ключ? JDK. Вот что есть инструменты. JRE нет.
duffymo
2
Не обязательно. Мне кажется, что они могли бы JAVA_HOMEустановить jreвнутрь, jdkа не на jdkсебя.
ArtOfWarfare
88

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

Блейк Митчелл
источник
7
этот. Спасибо! (для тех из нас, у кого установлены различные версии jre / jdk)
Дарен Томас,
у меня это сработало .. раньше я указывал путь с \ bin также .. вот в чем проблема
Джон
Спасибо, я хотел бы дать вам 2 взлёта!
Люк
38
  1. Установите Java SDK .

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

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

Джеймс Лаврук
источник
4
Переменная JAVA_HOME исправила все, большое спасибо :)
krinn
4
PATH с /bin , JAVA_HOME без /bin
Даниэль В.
1
Спасибо, я искал это часами !!
kcho0
1
Работайте как шарм на Windows8.1
Умар Аббас
РАБОТА, КАК ШАРМ !! СПАСИБО
Хайди
28

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

Камлеш Пант
источник
4
Загрязнение локальных установок классами, которые явно там не принадлежат, может привести к синдрому Работы на моей машине. Это даже если формальный процесс сборки на месте. tools.jar, который содержит неосновные классы для поддержки инструментов и утилит в JDK
real_paul
10

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

Zorayr
источник
10

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

sudo apt-get install openjdk-7-jdk openjdk-7-jre
mimoralea
источник
Очевидно, что вы можете использовать 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' для Java 8
schlenger
7

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

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

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

C:\Program Files\Java\jdk1.6.0_24
Шон Патрик Флойд
источник
да ты прав! но как я могу удалить JRE? заранее спасибо
olidev
Пуск> Панель управления> Программное обеспечение (или подобное, в зависимости от версии Win *)
Шон Патрик Флойд
но нет такой возможности, чтобы удалить JRE. Я только что проверил!
olidev
@Joesy Хорошо, если вы не можете найти его, просто оставьте его, нет необходимости удалять его (кроме как для восстановления дискового пространства). Вы можете установить множество JDK и / или JRE параллельно
Шон Патрик Флойд,
5

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

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

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

sathiya
источник
2
этот подход рекомендуется?
S_M
4

У меня была такая же проблема на машине с 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.

Ивайло Славов
источник
1
У меня та же проблема с окнами, с помощью которой вы решили мою проблему.
Иган Ву
Я пробовал все это и до сих пор получить проблему с tools.jar. Стоит ли Randoop усилий? Значение это генерирует достойные юнит-тесты? Огорчает то, что КАЖДАЯ другая java-программа на моем компьютере с Windows работает нормально.
Мистер Смит
@MrSmith, какой путь ищет Randoop при получении ошибки. Может быть, у Randoop есть своя собственная настройка env, которая сообщает, где находится JRE? Кроме того, вы открывали свои окна оболочки (если они запускались из оболочки) после изменения переменных env?
Ивайло Славов
3

перейдите на путь 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"

Сандип
источник
2

У меня была такая же проблема даже после установки 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

user3243105
источник
2

Вы можете столкнуться с подобной проблемой в 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
Саша Зезулинский
источник
2

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

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

Рами Фетеха
источник
Я должен был заставить это. Ant 10+ ищет JDK в неизвестной переменной. Я не мог найти, где он получал JDK, но когда я смог в командной строке и заставил JAVA HOME, это сработало.
Каммингс
2

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

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

alt440
источник
1

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

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

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

Йорген Скор Фишер
источник
1

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

Vimal Basdeo
источник
1

У меня был мой 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 до оракула, и проблема решена.

Arashsoft
источник
1

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

Estudiante
источник
0
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
Нирмальт
источник
0

Убедитесь, что ваш classpath установлен правильно и указывает на правильную версию JDK, которую вы установили. Кроме того, вы используете Open JDK? У меня была эта проблема раньше после того, как я попытался перейти с открытого JDK на Suns JDK. Это пример того, как эта проблема может быть исправлена.

Джон Кейн
источник
0

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

living.li
источник
0
  • Щелкните правой кнопкой мыши на вашем файле муравья
  • Перейдите в «Запуск от имени», затем нажмите «Ant Build ...»
  • Перейти на вкладку "JRE"
  • Выберите JDK, а не JRE
гнилые клубни,
источник
0

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

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

Флоран Жиро
источник
0

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

Гниды
источник
0

Если вы находитесь в среде RHEL, имя пакета, содержащее tools.jar, заканчивается на «openjdk-devel».

TastyWheat
источник
0

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

введите описание изображения здесь

Basj
источник
0

Я скачал 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 Но я не знаю, является ли это необходимо.

astatyzm
источник
0

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

pagurix
источник
0

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

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

GarethPN
источник