Nie można znaleźć pliku tools.jar

182

Buduję projekt w Javie.

Mam ten błąd:

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

Zainstalowałem JDK i folder: C:\Program Files\Java\jre6\libjest w moim systemie, ale pliku tools.jartam nie ma.

olidev
źródło
Myślę, że narzędzia należą do JDK, a nie do JRE. Prawda? C: \ Program Files \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo
4
Na marginesie, zadziwiające wydaje mi się to, że program faktycznie powiedział, gdzie wygląda. Tak niewiele programów zapewnia tę przydatną wskazówkę.
Peter Flynn
Zobacz także duplikat pytania: stackoverflow.com/q/9119479/3328979 Odpowiedzi są w jakiś sposób lepsze niż tutaj.
Arashsoft

Odpowiedzi:

188

Tak, pobrałeś i zainstalowałeś środowisko Java Runtime Environment (JRE) zamiast Java Development Kit (JDK). Ten ostatni zawiera narzędzia.jar, java.exe, javac.exe itp.

duffymo
źródło
7
@olidev sprawdza to teraz, ale nadal nie może przestać wskazywać na problem !! Jak to może być twoja odpowiedź? Wspomniałeś już, że zainstalowałeś jdk i jre. Właściwie mam do czynienia z podobnym problemem i nadal trwa :-(. Potrzebujesz wiedzieć, jak to działa?
Najemnik
7
Dodaj JAVA_HOME i katalog / bin do swojej ścieżki. Zdajesz sobie sprawę, że ta odpowiedź ma dwa lata, prawda?
duffymo
17
W ubuntu: # apt-get install default-jdki błąd znika.
Xavi Montero
2
Klucz? JDK. To właśnie ma narzędzia. JRE nie.
duffymo
2
Niekoniecznie. Wydaje mi się, że mogliby JAVA_HOMEustawić się w jreśrodku jdkzamiast w samym jdksobie.
ArtOfWarfare
88

W przypadku, gdy jest to nadal problem dla każdego, wyjaśnię poprzednie odpowiedzi. Napotkałem ten sam problem przy użyciu ant z zainstalowanym tylko JDK. Chociaż instalator JDK dał mi taką strukturę katalogów:

 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

a kiedy uruchomiłem mrówkę, narzekałem na to, że nie znalazłem tools.jar w podkatalogu jre7. Dopiero set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"gdy błąd zniknął.

Blake Mitchell
źródło
7
to. dzięki! (dla tych z nas, którzy mają zainstalowane różne wersje jre / jdk)
Daren Thomas
zadziałało dla mnie .. wcześniej podałem ścieżkę z \ bin również .. to był problem
John
Dzięki, chciałbym dać ci 2 ups!
Łukasz
38
  1. Zainstaluj Java SDK .

  2. Dodaj zmienną środowiska systemowego o nazwie JAVA_HOME z wartością położenia JDK.
    Przejdź do Panelu sterowania \ System i zabezpieczenia \ System. Zaawansowane ustawienia systemu, zmienne środowiskowe, zmienne systemowe, nowe ... Przykład:
    Nazwa zmiennej: JAVA_HOME
    Wartość zmiennej: C: \ Program Files \ Java \ jdk1.7.0_21

  3. Zamknij / ponownie otwórz okno CMD, aby nowa zmienna zadziałała przed ponownym uruchomieniem komendy ant.

James Lawruk
źródło
4
Zmienna JAVA_HOME naprawiła wszystko, wielkie dzięki :)
krinn
4
PATH z /bin , JAVA_HOME bez /bin
Daniel W.
1
Dzięki, szukałem tego godzinami !!
kcho0
1
Działa jak urok w Windows 8.1
Umar Abbas
PRACUJ JAK CHARM !! DZIĘKI
Heidi
28

Miałem ten sam problem i kopiowanie C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar aby C:\Program Files\Java\jre6\lib\ext pracował dla mnie

Kamlesh Pant
źródło
4
Zanieczyszczenie lokalnych instalacji klasami, które wyraźnie do nich nie należą, może doprowadzić do syndromu Works on my machine. Dzieje się tak nawet wtedy, gdy istnieje formalny proces kompilacji. tools.jar, który zawiera nie-podstawowe klasy do obsługi narzędzi i programów narzędziowych w JDK
real_paul
10

Ustaw swoją JAVA_HOMEzmienną środowiskową, aby wskazywała C:\Program Files\Java\jdk1.7.0_02.

Zorayr
źródło
10

Jeśli jesteś w systemie Linux, możesz rozwiązać ten problem, instalując java w systemie:

sudo apt-get install openjdk-7-jdk openjdk-7-jre
mimoralea
źródło
Oczywiście można użyć „sudo apt-get install openjdk-8-jdk openjdk-8-jre” dla Java 8
schlenger
7

Nie, zgodnie ze strukturą katalogów zainstalowałeś JRE, a nie JDK. Jest różnica.

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

Powinno to być coś takiego:

C:\Program Files\Java\jdk1.6.0_24
Sean Patrick Floyd
źródło
tak masz rację! ale jak mogę odinstalować Jre? z góry
dziękuję
Start> Panel sterowania> Oprogramowanie (lub podobne, w zależności od wersji Win *)
Sean Patrick Floyd
ale nie ma takiej opcji, aby usunąć Jre. Właśnie sprawdziłem!
olidev 20.04.11
@Joesy OK, jeśli nie możesz go znaleźć, po prostu zostaw go, nie musisz go odinstalowywać (oprócz odzyskiwania miejsca na dysku). Możesz mieć wiele JDK i / lub JRE zainstalowanych równolegle
Sean Patrick Floyd
7

Jeśli zainstalowałeś JDK 9.0.1, będziesz miał również ten problem, ponieważ plik tools.jar jest przestarzały. Zobacz dokument migracji .

Graham Chiu
źródło
5

Nie marnuj zbyt wiele czasu na szukanie tools.jar. Jeśli pojawi się taki błąd, nie denerwuj się.

Jeśli masz już Java JDK 1.5, przejdź do libfolderu i tools.jarpowinna tam być dostępna. Skopiuj i wklej w binfolderze mrówek , a następnie spróbuj użyć polecenia ant -version.

Powinieneś zobaczyć oczekiwany wynik.

satiya
źródło
2
czy takie podejście jest godne polecenia?
S_M
4

Miałem ten sam problem na maszynie z linuksem. Na początku byłem bardzo sfrustrowany, ponieważ zainstalowałem zarówno JDK, jak i JRE. Używam jednocześnie wersji 1.6, 1.7 i 1.8 i dużo grałem z alternatywami, aby wszystko było ustawione poprawnie.

Problem był głupi do rozwiązania, ale sprzeczny z intuicją. Podczas korzystania z prawidłowego pakietu JDK zwracałem uwagę na ścieżkę narzędzi, na które narzekał maven jar - spodziewałem się, że będzie

$JAVA_HOME\..\lib\tools.jar

$JAVA_HOMEZmienna wskazał bezpośrednio do mojego jdkfolderu ( /usr/local/javaktóry również był poprawny $PATHwpis i alternatywne łącza sym). W rzeczywistości szuka libfolderu poza katalogiem Java, ponieważ:

$JAVA_HOME\..\lib\tools.jar

rozwiąże do

/usr/local/lib/tools.jar

i to nie jest poprawna lokalizacja.

Aby rozwiązać ten problem, $JAVA_HOMEzmienna powinna zamiast tego wskazywać tę lokalizację /usr/local/java/jre(zakładając, że jest to ścieżka JDK /usr/local/java) - w jrekatalogu instalacyjnym JDK znajduje się folder, który jest dostarczany z każdym JDK. Ta nowa konfiguracja spowoduje, że maven zajrzy do katalogu JRE, który jest częścią JDK:

$JAVA_HOME\..\lib\tools

który teraz rozwiązuje

/usr/local/java/jre/../lib/tools.jar

i wreszcie do

/usr/local/java/lib/tools.jar

gdzie tools.jarnaprawdę mieszka.

Zatem nawet jeśli używasz JDK zamiast JRE, $ JAVA_HOME musi wskazywać na JRE. Pamiętaj, że alternatywa dla systemu operacyjnego powinna nadal odnosić się do JDK.

Ivaylo Slavov
źródło
1
Mam ten sam problem z oknami, wykorzystaj sposób, w jaki rozwiązałeś mój problem.
Yigang Wu,
próbowałem tego wszystkiego i nadal mam problem z tools.jar. Czy Randoop jest wart wysiłku? Czy to generuje przyzwoite testy jednostkowe? Frustrujące jest to, że KAŻDY inny program Java na moim Windowsie działa dobrze.
Pan Smith,
@MrSmith, Jaka jest ścieżka, której szuka Randoop po otrzymaniu błędu. Może Randoop ma własne ustawienie env, które mówi mu, gdzie jest JRE? Czy ponownie otworzyłeś okna powłoki (jeśli działasz z powłoki) po zmianie zmiennych env?
Ivaylo Slavov,
3

przejdź do ścieżki jdk, w której zainstalowałeś java

Na przykład na moim komputerze JDK zainstalowany w następującej ścieżce

„C: \ Program Files \ Java \ jdk1.7.0_17 \”;

Po przejściu do folderu lib np. „C: \ Program Files \ Java \ jdk1.7.0_17 \ lib”

w katalogu lib znajduje się plik tool.jar

Skopiuj ten plik i wklej go w katalogu lib forlder katalogu jre7 np

„C: \ Program Files \ Java \ jre7 \ lib”

sandeep
źródło
2

Miałem ten sam problem, nawet po zainstalowaniu Java JDK oraz zestaw JAVA_HOMEdo ..\jdk1.6.0_45\binfolderu.

Ant wciąż próbuje znaleźć tools.jarw C:\Program Files\Java\jre6\libfolderze.
Naprawiłem go poprzez dodanie JAVACMDzmiennej środowiskowej i ustawić ścieżkę do niego java.exew jdkfolderze.
W moim przypadku tak byłoC:\Program Files\Java\jdk1.6.0_45\bin\java.exe

użytkownik3243105
źródło
2

Możesz napotkać podobny problem na Ubuntu:

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

Problem dotyczy JAVA_HOME, który nie jest poprawnie ustawiony.

Tak więc na Ubuntu 14.04 x64 przy użyciu Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Sasha Zezulinsky
źródło
2

zostało to rozwiązane ze mną w systemie Windows poprzez ustawienie zmiennej JAVA_HOME przed uruchomieniem w następujący sposób:

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

Ramy Feteha
źródło
Musiałem to wymusić. Ant 10+ szuka JDK w nieznanej zmiennej. Nie mogłem znaleźć, skąd bierze JDK, ale kiedy mogłem w linii poleceń i zmusiłem JAVA HOME, zadziałało.
Cummings,
2

Jak wiele osób wspomniało, wygląda na to, że szukasz pliku JRE zamiast JDK dla pliku tools.jar.

Chciałbym również wspomnieć, że w najnowszych wersjach JDK nie ma już pliku tools.jar. Pobrałem najnowszą wersję JDK na dzień dzisiejszy (wersja 12 JDK) i nie mogłem znaleźć narzędzi tools.jar. Musiałem pobrać JDK wersja 8 (1.8.0) tutaj https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, aby uzyskać plik tools.jar. Pobrałem tę wersję, wziąłem plik tools.jar i umieściłem go w folderze lib mojej najnowszej wersji.

alt440
źródło
1

Upewnij się, że zarówno ścieżka% JAVA_HOME%, jak i% JAVA_HOME% / bin są dodane do zmiennej PATH.

Wszystkie odpowiedzi dotyczące kopiowania tools.jar w prawidłową pozycję to w najlepszym razie kiepski pomysł.

Upewnij się, że Twoje IDE może znaleźć te słoiki zgodnie z przeznaczeniem.

Jørgen Skår Fischer
źródło
1

W oknie Eclipse> preferencje> Java> Zainstalowałem JRE, wskazałem katalog na katalog jre w jdk 1.7 i pracowałem dla mnie plik np. C: \ Program Files \ Java \ jdk1.7.0_71 \ jre

Vimal Basdeo
źródło
1

Miałem moją JDK_path ( C:\Program Files\Java\jdk1.7.0_79) w mojej, JAVA_HOMEa także JDK_path \ bin w mojej PATH. Ale nadal moja mrówka używała JRE zamiast JDK.

Problem polegał na tym, że miałem C:\ProgramData\Oracle\Java\javapathmoją PATHzmienną JDK_path . Po prostu przesunąłem ścieżkę JDK_przed wyrocznią i problem został rozwiązany.

Arashsoft
źródło
1

rozwiązując ten problem, po prostu skopiowałem plik tools.jar z C: \ Program Files \ Java \ jre1.8.0_112 \ lib do C: \ Program Files \ Java \ jdk1.8.0_112 \ lib, więc mam dwa tools.jar pliki zamiast jednego i problem zniknął.

estudiante
źródło
0
Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

jeśli zainstalowałeś jdk, to

..Java/jdkx.x.x

folder musi tam istnieć, więc w przeciągnij go i podaj pełną ścieżkę jak

C:\Program Files\Java\jdk1.6.0\lib\tools.jar
Nirmalthin BeYond
źródło
0

Upewnij się, że ścieżka klasy jest ustawiona poprawnie i wskazuje poprawną wersję zainstalowanego pakietu JDK. Ponadto używasz Open JDK? Ten problem występował już wcześniej po próbie przejścia z otwartego JDK do Suns JDK. To jest przykład tego, jak można rozwiązać ten problem.

John Kane
źródło
0

maven-compiler-plugin use jdk, a nie jre, tools.jar znajduje się w C: \ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar, musisz skonfigurować projekt JRE System Libary za pomocą jdk, a nie jar. To jest najprostsze rozwiązanie.

living.li
źródło
0
  • Kliknij prawym przyciskiem myszy plik mrówki
  • Przejdź do „Uruchom jako”, a następnie kliknij „Ant Build ...”
  • Przejdź do zakładki „JRE”
  • Wybierz JDK, a nie JRE
Zgnilizna
źródło
0

Dla mnie to, co działa: Pobrałem starą wersję Java 1.7

Właściwie ustawiłem JAVA_HOME z plików programu C: / X86 / Java ALE po zainstalowaniu wersji 1.7 miałem inną Javę w plikach programu / Java. I w tym momencie znalazłem tutaj tools.jar. Potem zmieniłem na tę nową ścieżkę i działa

Florent Giraud
źródło
0

Miałem również ten sam błąd. Zostało to usunięte po ustawieniu ścieżki Java_Home na C: \ Program Files \ Java \ jdk1.8.0_121. Upewnij się, że bin nie jest uwzględniony w ścieżce i nie ma ukośnika po jdk1.8.0_121 po zdefiniowaniu% JAVA_HOME% \ bin w zmiennej ścieżki systemowej.

Gnidy
źródło
0

Jeśli jesteś w środowisku RHEL, nazwa pakietu zawierającego tools.jar kończy się na „openjdk-devel”.

TastyWheat
źródło
0

Oto rozwiązanie dla systemu Windows: w Komputer> Zaawansowane ustawienia systemu> Zaawansowane> Zmienne środowiskowe ... dodaj to w Zmienne systemowe :

wprowadź opis zdjęcia tutaj

Basj
źródło
0

Pobrałem tools.jar, a następnie skopiowałem go do ścieżki w komunikacie o błędzie.

C: \ Program Files \ Java \ jdk-11.0.1 \ bin> wklej tutaj tools.jar

Następnie ponownie uruchomiłem Spring Tool Suit 4 i wszystko działało. Kiedy próbowałem rozwiązać ten problem, utworzyłem nową zmienną środowiskową: Panel sterowania / System / Advised / Zmienne środowiskowe / nowa nazwa: JAVA_HOME Wartość: C: \ Program Files \ Java \ jdk-11.0.1 Ale nie wiem, czy to to konieczne.

astatyzm
źródło
0

być może zaktualizowałeś środowisko JRE w systemie operacyjnym, a dodatek dodał w „ścieżce” zmiennych środowiskowych wpis „... / Oracle / jer”, który zastępuje twój JAVA_HOME. spróbuj usunąć go z „ścieżki”, pozostawiając JAVA_HOME.

pagurix
źródło
0

Ponieważ pomaga, problem polegał na tym, że miałem 2 wpisy w mojej zmiennej środowiskowej PATH, które wskazywały na lokalizację zawierającą plik wykonywalny javaw.

Wyczyściłem zmienną, aby upewnić się, że „% JAVA_HOME% \ bin” był jedynym wpisem odnoszącym się do lokalizacji zawierającej moje pliki wykonywalne Java.

GarethPN
źródło