it-swarm.com.de

Gradle findet keine tools.jar

Ich verwende Javadoc-Doclets mit Gradle, daher muss ich das Paket tools.jar verwenden, das sich im lib-Ordner von jdk befindet (in meinem Fall 1.6.0_26).

Der Punkt ist, dass Gradle es nicht automatisch übernimmt, also habe ich dieses Tools-Paket zu meinem libs-Ordner hinzugefügt und es dann zu dependencies.gradle hinzugefügt. 

Jetzt möchte ich es direkt von meinem JDK nach Hause in meinen Abhängigkeitsgrad bringen. Gibt es eine Möglichkeit, dies zu tun? Ich habe den nächsten in meinen Abhängigkeiten ausprobiert.

compile files("${System.properties['Java.home']}/lib/tools.jar")

Es findet es aber nicht beim Kompilieren.

130
raspayu

Fand es. Die Systemeigenschaft 'Java.home' ist keine Java_HOME-Umgebungsvariable. Java_HOME verweist auf das JDK, während Java.home auf die JRE verweist. Siehe diese Seite für weitere Informationen.

Soo ... Mein Problem war, dass mein Startpunkt der jre-Ordner (C:\jdk1.6.0_26\jre) und nicht der jdk-Ordner (C:\jdk1.6.0_26) war, wie ich dachte (tools.jar ist auf dem C (Ordner\jdk1.6.0_26\lib). Die Kompilierzeile in dependencies.gradle sollte lauten:

compile files("${System.properties['Java.home']}/../lib/tools.jar")
69
raspayu

Ich hatte dieses Problem, als ich versuchte, Befehle über die CLI auszuführen. 

Es war ein Problem mit dem System, das den JRE-Ordner ansah, d. H. D:\Program Files\Java\jre8\bin. Wenn wir dort reinschauen, gibt es keinen Tools.jar, daher der Fehler. 

In meinem Fall müssen Sie herausfinden, wo sich die Variable JDK befindet: D:\Program Files\Java\jdk1.8.0_11. Wenn Sie im Verzeichnis lib suchen, wird Tools.jar angezeigt.

Was ich gemacht habe Ich habe eine neue Umgebungsvariable erstellt Java_HOME:  enter image description here

Und dann müssen Sie Ihre PATH-Variable so bearbeiten, dass sie Java_HOME enthält, d. H. %Java_HOME%/bin; enter image description here

Öffnen Sie die Eingabeaufforderung erneut und sollte ausgeführt werden. 

115
benscabbia

Ich habe die gleiche Fehlermeldung erhalten, als ich mit Eclipse versuchte, eine Gradle-Aufgabe auszuführen. Jedes Mal, wenn ich einen Befehl ausführte (d. H. Krieg), wurde eine Ausnahme wie der folgende ausgelöst: 

Tools.jar konnte nicht gefunden werden. Bitte überprüfen Sie, ob C:\Programme\Java\Jre8 "eine gültige JDK-Installation ist.

Ich habe die in diesem Beitrag aufgeführte Lösung ausprobiert, aber keiner von ihnen hat dieses Problem gelöst. Hier meine Lösung:

  1. Wechseln Sie in die Ansicht "Gradle Task" 
  2. Klicken Sie mit der rechten Maustaste auf die Aufgabe, die Sie ausführen möchten
  3. Wählen Sie Open Gradle Run Configuration aus
  4. Wählen Sie im Tab "Java Home" Ihr lokales JDK-Repository aus und klicken Sie auf OK

Wieder laufen, viel Spaß! 

65
rattek

Ich habe gerade eine gradle.properties-Datei mit folgendem Inhalt hinzugefügt:

org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
40
bondehagen

Ich habe auch um diese Lösung gekämpft. Mit Gradle einen besseren Weg gefunden, wie beschrieben hier . Die JVM/JDK-Informationen erhalten Sie von Gradle selbst.

dependencies {
   runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}

So einfach.

17
Mohammed

Ich hatte einen ähnlichen Fall mit Ubuntu . Die Maschine hatte nur dieJREinstalliert. Also habe ich einfach den folgenden Befehl ausgeführt, um dieJDKzu installieren.

Sudo apt install openjdk-8-jdk

17
Italo Borssatto

Fügen Sie dies zu gradle.properties hinzu:

org.gradle.Java.home = C:\Programme\Java\jdk1.8.0_91

14
azizbekian

Es ist vielleicht zwei Jahre zu spät, aber ich bin kürzlich auf dasselbe Problem gestoßen, und dies ist die Lösung, die ich mit diesem Beitrag gefunden habe:

import javax.tools.ToolProvider

dependencies {
  compile (
    files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
    ...
  }
}

Es sollte funktionieren, wenn Java.home auf ein Verzeichnis verweist, das sich nicht im JDK-Verzeichnis befindet, und sogar unter Mac OS, wo Sie classes.jar statt tools.jar verwenden.

11
Andrei LED

In CentOS7 wird das Entwicklungspaket tools.jar installieren. Die Datei ist in Java-1.8.0-openjdk nicht vorhanden

Sudo yum install Java-1.8.0-openjdk-devel

9

Auf Windows 10 stoße ich auf dasselbe Problem und habe das Problem auf diese Weise behoben.

  1. Zugriff Advance System Settings>Environment Variables>System Variables
  2. Wählen Sie PFAD den Standard überschreiben C:\ProgramData\Oracle\Java\javapath
  3. Mit Ihrer eigenen JDK-Installation ist das Java_HOME= C:\Program Files\Java\jdk1.8.0_162
8
Dun0523

Auf meinem System (Win 10, JRE 1.8.0, Android Studio 3.1.2, Gradle 4.1) befindet sich im JRE-Verzeichnis (tools.jar) kein C:\Program Files\Java\jre1.8.0_171.

Ich fand es jedoch in C:\Program Files\Android\Android Studio\jre\lib und versuchte die EinstellungJava_HOME=C:\Program Files\Android\Android Studio\jre

Das ist für mich in Ordnung)!

4
sidn

Linux

Öffnen Sie /etc/environment in einem beliebigen Texteditor wie nano oder gedit und fügen Sie die folgende Zeile hinzu:

Java_HOME="/usr/lib/jvm/open-jdk"

Windows  

  1. Starten Sie das Systemsteuerungs-Applet (Start - Einstellungen - Steuerung Panel - System). 
  2. Wählen Sie die Registerkarte Erweitert. 
  3. Klicken Sie auf die Schaltfläche Umgebung Variablen. 
  4. Klicken Sie unter Systemvariablen auf die Schaltfläche Hinzufügen und dann hinter den folgenden Zeilen:

    in Variablenname: Java_HOME

    in variablem Wert: C:\Program Files\Java\jdk1.x.x_xxx 

    wo x.x_xxx jdk version gibt es hier die jdk version C:\Program Files\Java

  5. Wählen Sie unter Systemvariablen Pfad aus und klicken Sie auf Bearbeiten. Klicken Sie dann auf die Schaltfläche Neu und dann hinter der folgenden Zeile:

    %Java_HOME%/bin;

3
Mortada Jafar

In meinem Fall (Windows 10) habe ich nach dem Java-Update meine Umgebungsvariablen verloren, daher habe ich die Variablen in den folgenden Schritten erneut hinzugefügt https://confluence.atlassian.com/doc/setting-the-Java_home-variable -in-windows-8895.html

2
Ciro Mine

Bei Centos 7 habe ich festgestellt, dass nur JDK tools.jar hat, während JRE nicht hat. Ich habe Java 8 JRE (yum install Java-1.8.0-openjdk) installiert, nicht jedoch das JDK (yum install Java-1.8.0-openjdk-devel).

Die Installation des letzteren löst das Problem. Denken Sie auch daran, Java_HOME einzustellen.

2
WesternGun

Wie andere Antworten setze ich org.gradle.Java.home property in gradle.properties file. Pfad mit\Trennzeichen funktionierte jedoch nicht (unter Windows 10): 

Java-Startseite, die über 'org.gradle.Java.home' bereitgestellt wird, ist ungültig. Ungültig Verzeichnis: C: ProgrammdateienJavajdk1.8.0_65

Also statt 

org.gradle.Java.home = C:\Programme\Java\jdk1.8.0_65

ich musste verwenden

org.gradle.Java.home = C:/Programme/Java/jdk1.8.0_65

dann war der Build erfolgreich

Das Problem ist, dass das Projekt mit JRE anstelle von JDK erstellt wird. Da ich es von Eclipse aus erstellt habe, hat dies auch funktioniert:

  • Geben Sie in Window> Preferences> Gradle> Arguments die Workspace-JRE und Ihr JDK an. 
  • Geben Sie unter Fenster> Voreinstellungen> Java> InstalledJREs Ihr JDK als Standard an
2
Piro

Haben Sie sichergestellt, dass tools.jar den Pfad der Kompilierklasse gefunden hat? Vielleicht ist der Pfad falsch.

task debug << {
    configurations.compile.each { println it }
}
1

Durch das Hinzufügen eines JDK-Pfads über die Registerkarte Java_HOME in "Open Gradle Run Configuration" wird das Problem gelöst.

1
Haseena B

Wenn Sie Terminal zum Erstellen verwenden und dieser Fehler auftritt, können Sie auf jdk verweisen, das in Android Studio in Ihrer gradle.properties-Datei enthalten ist:

org.gradle.Java.home=/usr/local/Android-studio/jre

Das hat für mich funktioniert:

Ich habe eine Nachricht bekommen 

Ausführung fehlgeschlagen für Task ': app: compileDebugJavaWithJavac'.

Tools.jar konnte nicht gefunden werden. Bitte überprüfen Sie, ob C:\Programme\Java\jre1.8.0_121 eine gültige JDK-Installation enthält.

  • Überprüfen Sie in Android Studio Ihre SDK-Position.
  • Datei, Projektstruktur, SDK-Speicherort, JDK-Speicherort.
  • Beispiel: C:\Android-Studio\Android-Studio\Jre
  • Kopieren Sie die Datei tools.jar im Ordner C:\Android-Studio\Android-Studio\jre\lib in den Ordner C:\Programme\Java\jre1.8.0_121\lib.
  • Wiederholen.
1
live-love

Ich habe die meisten Top-Optionen ausprobiert, aber anscheinend hatte ich ein Problem mit der Umgebungseinstellung, sodass sie nicht geholfen haben. Das Problem, das für mich gelöst wurde, bestand darin, neu zu installieren jdk1.8.0_201 und jre1.8.0_201 und dies löste den Fehler für mich. Hoffe das hilft jemandem.

0
Anton Belev

Ich habe das Problem folgendermaßen gelöst:

0
Veljko P.