web-dev-qa-db-fra.com

Gradle ne trouve pas tools.jar

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.

130
raspayu

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")
69
raspayu

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:  enter image description here

Et vous devez ensuite modifier votre variable PATH pour inclure Java_HOME, c.-à-d. %Java_HOME%/bin; enter image description here

Rouvrez l'invite de commande et doit s'exécuter. 

115
benscabbia

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:

  1. Aller à la vue "Gradle Task" 
  2. Clic droit sur la tâche que vous souhaitez exécuter
  3. Sélectionnez Open Gradle Run Configuration
  4. Dans l'onglet "Java Home", sélectionnez votre référentiel JDK local, puis cliquez sur OK.

Courez encore, profitez-en! 

65
rattek

Je viens d'ajouter un fichier gradle.properties avec le contenu suivant:

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

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.

17
Mohammed

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

17
Italo Borssatto

Ajoutez ceci à gradle.properties:

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

14
azizbekian

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.

11
Andrei LED

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

9
Richard Ginsberg

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)!

4
sidn

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  

  1. Démarrez l’applet du panneau de configuration du système (Démarrer - Paramètres - Contrôle Panneau - Système). 
  2. Sélectionnez l'onglet Avancé. 
  3. Cliquez sur le bouton Environnement Variables. 
  4. 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 

    x.x_xxx version jdk vous pouvez obtenir votre version jdk à partir d’ici C:\Program Files\Java

  5. 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;

3
Mortada Jafar

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.

2
WesternGun

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:

  • Dans Window> Preferences> Gradle> Arguments, indiquez Workspace JRE et votre JDK. 
  • Dans Fenêtre> Préférences> Java> InstalledJRE, spécifiez votre JDK par défaut.
2
Piro

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 }
}
1
Peter Niederwieser

L'ajout du chemin JDK via l'onglet Java_HOME dans "Ouvrir la configuration d'exécution Gradle" résoudra le problème.

1
Haseena B

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
1

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.

  • Dans Android Studio, vérifiez l’emplacement de votre SDK.
  • Fichier, structure du projet, emplacement du SDK, emplacement du JDK.
  • Exemple: C:\Android-studio\Android-studio\jre
  • Copiez le fichier tools.jar du dossier C:\Android-studio\Android-studio\jre\lib du dossier C:\Program Files\Java\jre1.8.0_121\lib.
  • Réessayez.
1
live-love

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.

0
Anton Belev

J'ai résolu le problème de cette façon:

0
Veljko P.