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.
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")
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
:
Und dann müssen Sie Ihre PATH-Variable so bearbeiten, dass sie Java_HOME enthält, d. H. %Java_HOME%/bin;
Öffnen Sie die Eingabeaufforderung erneut und sollte ausgeführt werden.
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:
Wieder laufen, viel Spaß!
Ich habe gerade eine gradle.properties
-Datei mit folgendem Inhalt hinzugefügt:
org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
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.
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
Fügen Sie dies zu gradle.properties
hinzu:
org.gradle.Java.home = C:\Programme\Java\jdk1.8.0_91
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.
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
Auf Windows 10 stoße ich auf dasselbe Problem und habe das Problem auf diese Weise behoben.
Advance System Settings>Environment Variables>System Variables
C:\ProgramData\Oracle\Java\javapath
C:\Program Files\Java\jdk1.8.0_162
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)!
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
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
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;
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
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.
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:
Haben Sie sichergestellt, dass tools.jar den Pfad der Kompilierklasse gefunden hat? Vielleicht ist der Pfad falsch.
task debug << {
configurations.compile.each { println it }
}
Durch das Hinzufügen eines JDK-Pfads über die Registerkarte Java_HOME in "Open Gradle Run Configuration" wird das Problem gelöst.
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.
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.
Ich habe das Problem folgendermaßen gelöst: