Tools.jar konnte nicht gefunden werden


181

Ich baue ein Projekt in Java.

Ich habe diesen Fehler:

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

Ich habe ein JDK installiert und der Ordner: C:\Program Files\Java\jre6\libbefindet sich in meinem System, aber die Datei tools.jarist nicht vorhanden.


Ich denke, Werkzeuge gehören zum JDK, nicht zur JRE. Ist das nicht so? C: \ Programme \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo

4
Abgesehen davon finde ich es erstaunlich, dass das Programm tatsächlich sagte, wo es aussah. So wenige Programme liefern diesen nützlichen Hinweis.
Peter Flynn

Siehe auch die doppelte Frage: stackoverflow.com/q/9119479/3328979 Die Antworten dort sind irgendwie besser als hier.
Arashsoft

Antworten:


188

Ja, Sie haben die Java Runtime Environment (JRE) anstelle des Java Development Kit (JDK) heruntergeladen und installiert. Letzteres hat die tools.jar, java.exe, javac.exe usw.


7
@olidev überprüft dies jetzt, kann aber immer noch nicht aufhören, auf das Problem hinzuweisen !! Wie kann das Ihre Antwort sein? Sie haben bereits erwähnt, dass Sie jdk und jre installiert haben. Ich stehe tatsächlich vor einem ähnlichen Problem und es geht immer noch weiter :-(. Müssen Sie wissen, wie Sie es zum Laufen gebracht haben?
Söldner

7
Fügen Sie Ihrem Pfad JAVA_HOME und das Verzeichnis / bin hinzu. Sie erkennen, dass diese Antwort zwei Jahre alt ist, oder?
Duffymo

17
In Ubuntu: # apt-get install default-jdkund der Fehler verschwindet.
Xavi Montero

2
Der Schlüssel? JDK. Das ist es, was die Werkzeuge hat. JRE nicht.
Duffymo

2
Nicht unbedingt. Es sieht für mich so aus, als hätten sie JAVA_HOMEsich auf das jreInnere des jdkstatt auf das jdkSelbst eingestellt.
ArtOfWarfare

88

Falls dies immer noch ein Problem für irgendjemanden ist, habe ich ein bisschen Klarheit über die vorherigen Antworten. Ich bin auf dasselbe Problem mit ant gestoßen, bei dem nur ein JDK installiert war. Das JDK-Installationsprogramm hat mir jedoch eine Verzeichnisstruktur wie die folgende gegeben:

 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

und als ich ant lief, beschwerte es sich darüber, dass es tools.jar im Unterverzeichnis jre7 nicht gefunden habe. Erst als ich set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"verschwand, verschwand der Fehler.


7
Dies. Vielen Dank! (für diejenigen von uns, die verschiedene jre / jdk-Versionen installiert haben)
Daren Thomas

es hat bei mir funktioniert ... früher habe ich den Pfad auch mit \ bin angegeben ... das war das Problem
John

Danke, ich wünschte ich könnte dir 2 Ups geben!
Luke

38
  1. Installieren Sie das Java SDK .

  2. Fügen Sie eine Systemumgebungsvariable mit dem Namen JAVA_HOME mit dem Wert des JDK-Speicherorts hinzu.
    Gehen Sie zu Systemsteuerung \ System und Sicherheit \ System. Erweiterte Systemeinstellungen, Umgebungsvariablen, Systemvariablen , Neu ... Beispiel:
    Variablenname: JAVA_HOME
    Variablenwert: C: \ Programme \ Java \ jdk1.7.0_21

  3. Schließen Sie Ihr CMD-Fenster, damit die neue Variable wirksam wird, bevor Sie versuchen, den Befehl ant erneut auszuführen.


4
JAVA_HOME Variable hat alles behoben, vielen Dank :)
krinn

4
PATH mit /bin , JAVA_HOME ohne /bin
Daniel W.

1
Danke, ich habe stundenlang danach gesucht !!
kcho0

1
Arbeiten Sie wie Charme unter Windows 8.1
Umar Abbas

ARBEITEN SIE WIE EIN CHARME !! DANKE
Heidi

28

Ich hatte das gleiche Problem und das Kopieren C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar auf C:\Program Files\Java\jre6\lib\ext für mich gearbeitet


4
Die Verschmutzung lokaler Installationen mit Klassen, die eindeutig nicht dorthin gehören, kann zu den Works on my machine-Syndromen führen. Dies gilt auch dann, wenn ein formaler Erstellungsprozess vorhanden ist. tools.jar, das Nicht-Kernklassen zur Unterstützung der Tools und Dienstprogramme im JDK enthält
real_paul

10

JAVA_HOMEStellen Sie Ihre Umgebungsvariable so ein, dass sie auf zeigt C:\Program Files\Java\jdk1.7.0_02.


10

Wenn Sie unter Linux arbeiten, können Sie dies lösen, indem Sie Java auf dem System installieren:

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

Natürlich können Sie 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' für Java 8 verwenden
schlenger

7

Nein, gemäß Ihrer Verzeichnisstruktur haben Sie eine JRE installiert, kein JDK. Es besteht ein Unterschied.

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

Es sollte so etwas sein wie:

C:\Program Files\Java\jdk1.6.0_24

ja, du hast recht! aber wie kann ich jre deinstallieren?
Vielen

Start> Systemsteuerung> Software (oder ähnlich, abhängig von der Win * -Version)
Sean Patrick Floyd

Aber es gibt keine solche Option, um jre zu entfernen. Ich habe gerade nachgesehen!
Olidev

@Joesy OK, wenn Sie es nicht finden können, lassen Sie es einfach, Sie müssen es nicht deinstallieren (außer um Speicherplatz wiederherzustellen). Sie können viele JDKs und / oder JREs parallel installieren lassen
Sean Patrick Floyd


5

Verbringen Sie nicht zu viel Zeit mit der Suche tools.jar. Wenn Sie einen solchen Fehler erhalten, seien Sie nicht verärgert.

Wenn Sie bereits Java JDK 1.5 haben, gehen Sie zu Ihrem libOrdner, und der tools.jarsollte dort verfügbar sein. Kopieren Sie es und fügen Sie es in Ihren Ameisenordner ein. binVersuchen Sie dann, den Befehl zu verwenden ant -version.

Sie sollten das erwartete Ergebnis sehen.


2
Ist dieser Ansatz empfehlenswert?
S_M

4

Ich hatte das gleiche Problem auf einem Linux-Computer. Anfangs war ich ziemlich frustriert, weil ich sowohl das JDK als auch das JRE installiert habe. Ich verwende gleichzeitig die Versionen 1.6, 1.7 und 1.8 und habe viel mit den Alternativen gespielt, um alles richtig einzustellen.

Das Problem war ziemlich dumm zu lösen, aber nicht intuitiv. Während ich das richtige JDK verwendete, achtete ich auf den Pfad der Werkzeuge, über die sich jar maven beschwert hatte - es wurde erwartet

$JAVA_HOME\..\lib\tools.jar

Die $JAVA_HOMEVariable zeigte direkt auf meinen jdkOrdner ( /usr/local/javader auch der richtige $PATHEintrag und alternative Sym-Link war). Es sucht tatsächlich nach dem libOrdner außerhalb des Java-Verzeichnisses, weil:

$JAVA_HOME\..\lib\tools.jar

wird zu lösen

/usr/local/lib/tools.jar

und das ist kein gültiger Ort.

Um dies zu lösen, sollte die $JAVA_HOMEVariable stattdessen auf diesen Speicherort verweisen /usr/local/java/jre(vorausgesetzt, der JDK-Pfad lautet /usr/local/java). jreIm JDK-Installationsverzeichnis befindet sich tatsächlich ein Ordner, der mit jedem JDK geliefert wird. Dieses neue Setup veranlasst maven, das JRE-Verzeichnis zu überprüfen, das Teil des JDK ist:

$JAVA_HOME\..\lib\tools

was jetzt zu löst

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

und schließlich zu

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

Hier tools.jarwohnt der wirklich.

Selbst wenn Sie tatsächlich das JDK anstelle der JRE verwenden, muss $ JAVA_HOME auf die JRE verweisen. Denken Sie daran, dass sich die Betriebssystemalternative weiterhin auf das JDK beziehen sollte.


1
Ich habe das gleiche Problem mit Windows, verwenden Sie so mein Problem gelöst.
Yigang Wu

Ich habe das alles versucht und bekomme immer noch das Problem mit tools.jar. Ist Randoop die Mühe wert? Bedeutet das, dass es anständige Unit-Tests generiert? Der frustrierende Teil davon ist, dass JEDES andere Java-Programm auf meiner Windows-Box gut funktioniert.
Herr Smith

@ MrSmith, Nach welchem ​​Pfad sucht Randoop, wenn Sie den Fehler erhalten. Vielleicht hat Randoop eine eigene Env-Einstellung, die angibt, wo sich die JRE befindet? Haben Sie auch Ihre Shell-Fenster erneut geöffnet (wenn Sie von der Shell ausgeführt werden), nachdem Sie Ihre env-Variablen geändert haben?
Ivaylo Slavov

3

Gehen Sie zu Ihrem JDK-Pfad, in dem Sie Java installiert haben

Zum Beispiel in meinem PC JDK im folgenden Pfad installiert

"C: \ Programme \ Java \ jdk1.7.0_17 \";

Gehen Sie anschließend in den Ordner lib, z. B. "C: \ Programme \ Java \ jdk1.7.0_17 \ lib".

Im lib-Verzeichnis befindet sich die Datei tool.jar

Kopieren Sie diese Datei und fügen Sie sie in den lib forlder des Verzeichnisses jre7 ein, z

"C: \ Programme \ Java \ jre7 \ lib"


2

Ich hatte das gleiche Problem auch nach der Installation von Java JDK und JAVA_HOMEauf ..\jdk1.6.0_45\binOrdner gesetzt.

Ant versucht immer noch zu finden tools.jarin C:\Program Files\Java\jre6\libOrdnern.
Ich habe es behoben, indem ich eine JAVACMDUmgebungsvariable hinzugefügt und den Pfad dafür java.exeim jdkOrdner festgelegt habe.
In meinem Fall war esC:\Program Files\Java\jdk1.6.0_45\bin\java.exe


2

Unter Ubuntu kann es zu ähnlichen Problemen kommen:

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

Das Problem liegt bei JAVA_HOME, das nicht richtig eingestellt ist.

Also, unter Ubuntu 14.04 x64 mit Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

2

Es wurde mit mir in Windows OS gelöst, indem die Variable JAVA_HOME vor dem Ausführen wie folgt festgelegt wurde:

Setzen Sie JAVA_HOME = C: \ Programme \ Java \ jdk1.8.0_111


Ich musste das erzwingen. Ant 10+ sucht nach dem JDK in einer unbekannten Variablen. Ich konnte nicht finden, woher das JDK kam, aber wenn ich in der Kommandozeile JAVA HOME erzwingen konnte, funktionierte es.
Cummings

2

Wie viele Leute bereits erwähnt haben, suchen Sie in Ihrer JRE anstelle des JDK nach der Datei tools.jar.

Ich möchte auch erwähnen, dass es in neueren Versionen des JDK keine Datei tools.jar mehr gibt. Ich habe das aktuellste JDK von heute heruntergeladen (JDK Version 12) und konnte keine tools.jar finden. Ich musste JDK Version 8 (1.8.0) hier https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html herunterladen , um die Datei tools.jar zu erhalten. Ich habe diese Version heruntergeladen, die Datei tools.jar genommen und in den lib-Ordner meiner letzten Version gestellt.


1

Stellen Sie sicher, dass sowohl die Pfade% JAVA_HOME% als auch% JAVA_HOME% / bin zu Ihrer PATH-Variablen hinzugefügt werden.

Alle Antworten zum Kopieren von tools.jar in die richtige Position sind bestenfalls eine schlechte Idee.

Stellen Sie sicher, dass Ihre IDE diese Gläser so findet, wie sie entworfen und vorgesehen sind.


1

In Eclipse-Fenster> Einstellungen> Java> Installierte JRE habe ich das Verzeichnis auf das Verzeichnis jre in jdk 1.7 verwiesen und eine Datei für mich bearbeitet, z. B. C: \ Programme \ Java \ jdk1.7.0_71 \ jre


1

Ich hatte meinen JDK_path ( C:\Program Files\Java\jdk1.7.0_79) in meinem JAVA_HOMEund auch den JDK_path \ bin in meinem PATH. Trotzdem benutzte meine Ameise die JRE anstelle von JDK.

Das Problem war, dass ich C:\ProgramData\Oracle\Java\javapathvor meinem JDK_path in PATHVariable hatte. Ich habe einfach meinen JDK_Pfad vor dem Orakel verschoben und das Problem behoben.


1

Um dieses Problem zu lösen, habe ich einfach die Datei tools.jar von C: \ Programme \ Java \ jre1.8.0_112 \ lib nach C: \ Programme \ Java \ jdk1.8.0_112 \ lib kopiert, sodass ich zwei tools.jar habe Dateien statt einer und Problem verschwunden.


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

wenn du jdk installiert hast dann

..Java/jdkx.x.x

Ordner muss dort also im Stall vorhanden sein und vollständigen Pfad wie geben

C:\Program Files\Java\jdk1.6.0\lib\tools.jar

0

Stellen Sie sicher, dass Ihr Klassenpfad richtig eingestellt ist und auf die richtige Version des von Ihnen installierten JDK verweist. Verwenden Sie auch Open JDK? Ich hatte dieses Problem schon einmal, nachdem ich versucht hatte, von Open JDK zu Suns JDK zu wechseln. Dies ist ein Beispiel dafür, wie dieses Problem behoben werden kann.


0

maven-compiler-plugin benutze jdk, nicht jre, tools.jar befindet sich in C: \ Programme \ Java \ jdk1.6.0 \ lib \ tools.jar. Sie müssen das Projekt JRE System Libary mit jdk konfigurieren, nicht mit jar. Dies ist die einfachste Lösung.


0
  • Klicken Sie mit der rechten Maustaste auf Ihre Ameisendatei
  • Gehen Sie zu "Ausführen als" und klicken Sie auf "Ant Build ...".
  • Gehen Sie zur Registerkarte "JRE"
  • Wählen Sie ein JDK und keine JRE

0

Für mich, was funktioniert: Ich habe eine alte Version von Java 1.7 heruntergeladen

Ich habe mein JAVA_HOME tatsächlich aus C: / Programmdateien X86 / Java festgelegt, ABER nachdem ich die Version 1.7 installiert hatte, hatte ich ein anderes Java in Programmdateien / Java. Und in diesem Moment habe ich die tools.jar hier gefunden. Dann habe ich mich für diesen neuen Weg geändert und er funktioniert


0

Ich hatte auch den gleichen Fehler. Dies wurde entfernt, nachdem der Java_Home-Pfad auf C: \ Programme \ Java \ jdk1.8.0_121 gesetzt wurde. Stellen Sie sicher, dass bin nicht im Pfad enthalten ist und nach jdk1.8.0_121 kein Schrägstrich vorhanden ist, nachdem Sie% JAVA_HOME% \ bin in der Systempfadvariablen definiert haben.


0

Wenn Sie sich in einer RHEL-Umgebung befinden, endet der Paketname mit tools.jar mit "openjdk-devel".


0

Dies ist die Lösung für Windows: in Computer> Erweiterte Systemeinstellungen> Erweitert> Umgebungsvariablen ... , fügen Sie diese in Systemvariablen :

Geben Sie hier die Bildbeschreibung ein


0

Ich habe tools.jar heruntergeladen und danach in der Fehlermeldung in den Pfad kopiert.

C: \ Programme \ Java \ jdk-11.0.1 \ bin> hier einfügen tools.jar

Danach habe ich Spring Tool Suit 4 neu gestartet und alles hat funktioniert. Als ich versuchte, dieses Problem zu beheben, habe ich eine neue Umgebungsvariable erstellt: Systemsteuerung / System / Advenced / Umgebungsvariablen / neuer Name: JAVA_HOME Wert: C: \ Programme \ Java \ jdk-11.0.1 Aber ich weiß nicht, ist es ist notwendig.


0

Möglicherweise haben Sie die JREs im Betriebssystem aktualisiert, und durch Hinzufügen wurde im "Pfad" der Umgebungsvariablen ein Eintrag "... / Oracle / jer" hinzugefügt, der Ihr JAVA_HOME überschreibt. Versuchen Sie, es aus dem "Pfad" zu entfernen, indem Sie JAVA_HOME verlassen.


0

Falls es hilft, war das Problem für mich, dass ich 2 Einträge in meiner PATH-Umgebungsvariablen hatte, die auf einen Speicherort zeigten, der die ausführbare Javaw-Datei enthielt.

Ich habe die Variable bereinigt, um sicherzustellen, dass "% JAVA_HOME% \ bin" der einzige Eintrag ist, der auf einen Speicherort verweist, der meine ausführbaren Java-Dateien enthält.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.