Не вдається знайти tools.jar


182

Я будую проект на Яві.

У мене є ця помилка:

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немає.


Я думаю, що інструменти належать до JDK, а не до JRE. Хіба не так? C: \ Файли програм \ Java \ jdk1.6.0_24 \ lib
Едвін Далорцо

4
Як осторонь, мене дивує те, що програма насправді сказала там, де вона виглядала. Так мало програм надають цю корисну підказку.
Пітер Флінн

Також дивіться повторюване запитання: stackoverflow.com/q/9119479/3328979 Відповіді є дещо кращими ніж тут.
Arashsoft

Відповіді:


188

Так, ви завантажили та встановили Java Runtime Environment (JRE) замість Java Development Kit (JDK). Останній має інструменти.jar, java.exe, javac.exe тощо.


7
@olidev перевіряє це зараз, але все ще не може перестати вказувати на проблему !! Як це може бути вашою відповіддю? Ви вже згадували, що встановили jdk та jre. Я насправді стикаюся з подібною проблемою, і вона все ще триває :-(. Потрібно знати, як у вас це працює ??
Mercenary

7
Додайте до свого шляху JAVA_HOME та каталог / bin. Ви розумієте, що цій відповіді два роки, правда?
duffymo

17
В ubuntu: # apt-get install default-jdkі помилка зникає.
Xavi Montero

2
Ключ? JDK. Ось у чому є інструменти. JRE - ні.
duffymo

2
Не обов'язково. Мені здається, ніби вони могли JAVA_HOMEвстановити jreвсередину jdkзамість jdkсебе.
ArtOfWarfare

88

Якщо це все ще залишається проблемою для когось, я маю трохи роз’яснень щодо попередніх відповідей. Я зіткнувся з цим самим питанням, використовуючи мурашник, встановлений лише 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

і коли я забігав мурашник, він скаржився на те, що не знаходив 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: \ Файли програми \ 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.


10

Якщо ви перебуваєте в Linux, ви можете вирішити це, встановивши java в системі:

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

Очевидно, ви можете використовувати "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? заздалегідь
дякую

Пуск> Панель управління> Програмне забезпечення (або подібне, залежно від версії Win *)
Шон Патрік Флойд

але немає такого варіанта, як видалити jre. Я щойно перевірив!
olidev

@Joesy Гаразд, якщо ви не можете його знайти, просто залиште його, не потрібно видаляти його (крім відновлення місця на диску). У вас може бути встановлено багато JDK та / або JRE паралельно
Шон Патрік Флойд


5

Не витрачайте занадто багато часу на пошуки tools.jar. Якщо ви отримаєте таку помилку, не засмучуйтесь.

Якщо у вас вже є Java JDK 1.5, перейдіть до своєї libпапки, і там tools.jarмає бути доступний. Скопіюйте та вставте його у binпапку мурашки , а потім спробуйте скористатися командоюant -version .

Ви повинні побачити очікуваний результат.


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
У мене така ж проблема з Windows, використовуйте, як ви вирішили мою проблему.
Yigang Wu

Я спробував усе це і досі отримую проблему з tools.jar. Чи вартує зусиль Randoop? Значить, це генерує гідні одиничні тести? Розчаровує це те, що КОЖНА інша програма Java на моєму вікні Windows працює чудово.
Містер Сміт

@MrSmith, Який шлях шукає Randoop, коли ви отримуєте помилку. Можливо, у Randoop є власна настройка env, яка підказує, де знаходиться JRE? Крім того, ви знову відкрили вікна оболонки (якщо працює з оболонки) після зміни змінних env?
Івайло Славов

3

перейдіть до свого jdk шляху, де ви встановили свою Java

Наприклад, на моєму ПК JDK встановлений наступним шляхом

"C: \ програмні файли \ Java \ jdk1.7.0_17 \";

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

в каталозі lib є файл tool.jar

Скопіюйте цей файл і вставте його в каталог lib forlder з каталогу jre7, наприклад

"C: \ програмні файли \ Java \ jre7 \ lib"


2

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


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 перед запуском наступним чином:

встановити JAVA_HOME = C: \ програмні файли \ Java \ jdk1.8.0_111


Мені довелося це змусити. Мураха 10+ шукає JDK у невідомій змінній. Я не міг знайти, де він отримує JDK, але коли я можу в командному рядку і змусив JAVA HOME, це спрацювало.
Cummings

2

Як згадувало багато людей, схоже, ви шукаєте у своєму JRE замість JDK для файлу tools.jar.

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


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


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 перед оракулом і вирішив проблему.


1

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


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

Переконайтесь, що ваш класний шлях встановлений правильно, і вкажіть на правильну версію встановленого JDK. Також ви використовуєте Open JDK? У мене виникло це питання раніше, ніж я намагався перейти з відкритого JDK до Suns JDK. Це приклад того, як цю проблему можна було виправити.


0

maven-компілятор-плагін використовує jdk, не jre, tools.jar знаходиться в C: \ програмні файли \ Java \ jdk1.6.0 \ lib \ tools.jar, ви повинні налаштувати проект JRE System Libary за допомогою jdk, а не jar. Це найпростіше рішення.


0
  • Клацніть правою кнопкою миші на вашому мурашиному файлі
  • Перейдіть до пункту "Виконати як", а потім натисніть "Мурашник ..."
  • Перейдіть на вкладку "JRE"
  • Виберіть JDK, а не JRE

0

Для мене те, що працює: я завантажив стару версію Java 1.7

Я фактично встановив свій JAVA_HOME з C: / програмних файлів X86 / Java BUT, після того як я встановив версію 1.7, у мене була інша Java в програмних файлах / Java. І в цей момент я знайшов тут інструменти.jar. Потім я змінився на цей новий шлях і він працює


0

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


0

Якщо ви перебуваєте в середовищі RHEL, ім'я пакета, що містить tools.jar, закінчується "openjdk-devel".


0

Це рішення для Windows: у Комп'ютері> Розширені налаштування системи> Додатково> Змінні середовища ... , додайте це в Системні змінні :

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


0

Я завантажив tools.jar і після цього скопіював його в шлях у повідомленні про помилку.

C: \ Програмні файли \ Java \ jdk-11.0.1 \ bin> вставити сюди tools.jar

Після цього я перезапустив Spring Tool Suit 4 і все спрацювало. Коли я намагався виправити цю проблему, я створив нову змінну навколишнього середовища: Панель управління / Система / Розширені / Змінні середовища / Нова Ім'я: Значення JAVA_HOME: C: \ Програмні файли \ Java \ jdk-11.0.1 Але я не знаю, що це це необхідно.


0

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


0

У випадку, якщо це допомагає, проблема для мене полягала в тому, що у мене було 2 записи в моїй змінній середовища PATH, яка вказувала на місце, що містить виконувану програму javaw.

Я очистив змінну, щоб переконатися, що "% JAVA_HOME% \ bin" є єдиним записом, що посилається на місце, яке містить мої файли Java.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.