J'utilise des doclets javadoc avec gradle, je dois donc utiliser le package tools.jar, qui se trouve dans le dossier lib du jdk (1.6.0_26 dans mon cas).
Le fait est que gradle ne le prend pas automatiquement, alors j’ajoutais ce paquet d’outils à mon dossier libs, puis je l’ajoutais à dependencies.gradle.
Maintenant, je veux le prendre directement de mon domicile JDK dans mon dependencies.gradle. Y-a-t-il un moyen de faire ça? J'ai essayé le suivant dans mon dependencies.gradle:
compile files("${System.properties['Java.home']}/lib/tools.jar")
Mais il ne le trouve pas lors de la compilation.
Je l'ai trouvé La propriété système 'Java.home' n'est pas une variable d'environnement Java_HOME. Java_HOME pointe sur le JDK, tandis que Java.home pointe sur le JRE. Voir cette page pour plus d'informations.
Soo ... Mon problème était que mon point de départ était le dossier jre (C:\jdk1.6.0_26\jre) et non le dossier jdk (C:\jdk1.6.0_26) comme je le pensais (tools.jar est sur le C :\jdk1.6.0_26\lib)). La ligne de compilation dans dependencies.gradle devrait être:
compile files("${System.properties['Java.home']}/../lib/tools.jar")
J'ai eu ce problème lorsque j'essayais d'exécuter des commandes via CLI.
Le système regardait le dossier JRE, c’est-à-dire D:\Program Files\Java\jre8\bin
. Si nous y regardons, il n'y a pas de Tools.jar
, d'où l'erreur.
Vous devez trouver où se trouve JDK
, dans mon cas: D:\Program Files\Java\jdk1.8.0_11
, et si vous regardez dans le répertoire lib
, vous verrez Tools.jar
.
Ce que j'ai fait, j'ai créé une nouvelle variable d'environnement Java_HOME
:
Et vous devez ensuite modifier votre variable PATH pour inclure Java_HOME, c.-à-d. %Java_HOME%/bin;
Rouvrez l'invite de commande et doit s'exécuter.
J'ai eu la même erreur en utilisant Eclipse en essayant d'exécuter une tâche Gradle. Chaque fois que je lance une commande (c'est-à-dire une guerre), le processus lève une exception telle que:
Impossible de trouver tools.jar. Veuillez vérifier que C:\Program Files\Java\Jre8 "est une installation valide de JDK.
J'ai essayé la solution indiquée dans ce post, mais aucun d'entre eux n'a résolu ce problème. Voici ma solution:
Courez encore, profitez-en!
Je viens d'ajouter un fichier gradle.properties
avec le contenu suivant:
org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
Je me battais aussi pour cette solution. Nous avons trouvé un meilleur moyen d’y parvenir avec Gradle comme décrit ici ...__ Nous pouvons obtenir les informations JVM/JDK de Gradle lui-même.
dependencies {
runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}
Si simple.
J'ai eu un cas similaire en utilisant Ubuntu . La machine n'avait que leJREinstallé. Donc, je viens d’exécuter la commande ci-dessous pour installer leJDK.
Sudo apt install openjdk-8-jdk
Ajoutez ceci à gradle.properties
:
org.gradle.Java.home = C:\Program Files\Java\jdk1.8.0_91
Il se peut que ce soit deux ans trop tard, mais j’ai rencontré le même problème récemment et c’est la solution à laquelle j’ai abouti après avoir trouvé cet article :
import javax.tools.ToolProvider
dependencies {
compile (
files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
...
}
}
Cela devrait fonctionner si Java.home pointe vers un répertoire qui ne se trouve pas dans le répertoire JDK et même sous Mac OS où vous auriez classes.jar au lieu de tools.jar.
Dans CentOS7, le package de développement installera tools.jar. Le fichier n'est pas présent dans Java-1.8.0-openjdk
Sudo yum install Java-1.8.0-openjdk-devel
Sur mon système (Win 10, JRE 1.8.0, Android Studio 3.1.2, Gradle 4.1), il n’ya pas de tools.jar
dans le répertoire JRE (C:\Program Files\Java\jre1.8.0_171
).
Cependant, je l'ai trouvé dans C:\Program Files\Android\Android Studio\jre\lib
et j'ai essayé de définirJava_HOME=C:\Program Files\Android\Android Studio\jre
Ça marche pour moi)!
Linux
Ouvrez /etc/environment
dans n'importe quel éditeur de texte tel que nano ou gedit et ajoutez la ligne suivante:
Java_HOME="/usr/lib/jvm/open-jdk"
Les fenêtres
Sous Variables système, cliquez sur le bouton Ajouter, puis passez les lignes suivantes:
dans Nom de la variable: Java_HOME
dans la valeur de la variable: C:\Program Files\Java\jdk1.x.x_xxx
où x.x_xxx
version jdk vous pouvez obtenir votre version jdk à partir d’ici C:\Program Files\Java
Sous Variables système, sélectionnez Chemin, puis cliquez sur Modifier, puis sur un nouveau bouton, puis au-delà de la ligne suivante:
%Java_HOME%/bin;
Avec Centos 7, j’ai constaté que seul JDK a tools.jar
, alors que JRE n’a pas . J'ai installé le JRE Java 8 (yum install Java-1.8.0-openjdk
), mais pas le JDK (yum install Java-1.8.0-openjdk-devel
).
L'installation de ce dernier résout le problème. En outre, n'oubliez pas de définir Java_HOME
.
Comme d’autres réponses, je mets org.gradle.Java.home property dans gradle.properties file. Mais le chemin avec\separators ne fonctionnait pas (s'appuyant sur Windows 10):
La maison Java fournie via 'org.gradle.Java.home' n'est pas valide. Invalide répertoire: C: Program FilesJavajdk1.8.0_65
Donc au lieu de
org.gradle.Java.home = C:\Program Files\Java\jdk1.8.0_65
je devais utiliser
org.gradle.Java.home = C:/Fichiers de programme/Java/jdk1.8.0_65
alors la construction a réussi
Le problème est que le projet est construit avec JRE au lieu de JDK et depuis que je le construisais depuis Eclipse, cela fonctionnait aussi:
Vous êtes-vous assuré que tools.jar l'a faite sur le chemin de la classe de compilation? Peut-être que le chemin est incorrect.
task debug << {
configurations.compile.each { println it }
}
L'ajout du chemin JDK via l'onglet Java_HOME dans "Ouvrir la configuration d'exécution Gradle" résoudra le problème.
Si vous utilisez un terminal pour construire et que vous avez cette erreur, vous pouvez indiquer le jdk fourni avec Android studio dans votre fichier gradle.properties
:
org.gradle.Java.home=/usr/local/Android-studio/jre
Cela a fonctionné pour moi:
Je recevais un message
L'exécution a échoué pour la tâche ': app: compileDebugJavaWithJavac'.
Impossible de trouver tools.jar. Veuillez vérifier que C:\Program Files\Java\jre1.8.0_121 contient une installation JDK valide.
J'ai essayé la plupart des options principales, mais il semble que mon environnement ne soit pas conforme à la configuration de mon environnement. Elles ne m'ont donc pas aidé. Ce qui a résolu le problème pour moi a été de réinstaller jdk1.8.0_201
et jre1.8.0_201
et ceci a résolu l'erreur pour moi. J'espère que ça aide quelqu'un.
J'ai résolu le problème de cette façon: