[java] Gradle ne trouve pas tools.jar


Answers

Je l'ai trouvé. La propriété système 'java.home' n'est pas la variable d'environnement JAVA_HOME. JAVA_HOME pointe vers le JDK, tandis que java.home pointe vers 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 pas le dossier jdk (C: \ jdk1.6.0_26) comme je le pensais (tools.jar est sur le C : dossier \ jdk1.6.0_26 \ lib). La ligne de compilation dans dependencies.gradle devrait être:

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

J'utilise des doclets javadoc avec gradle, donc j'ai besoin d'utiliser le paquet tools.jar, qui se trouve dans le dossier lib du jdk (1.6.0_26 dans mon cas).

Le point est que gradle ne le prend pas automatiquement, donc j'ajoutais ce paquet d'outils dans mon dossier libs, et je l'ai ajouté à dependencies.gradle.

Maintenant, je veux le prendre directement à partir de ma maison JDK dans mon dependencies.gradle. Y-a-t-il un moyen de faire ça? J'ai essayé le suivant dans mes dependencies.gradle:

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

Mais il ne le trouve pas en compilant.




Linux

Ouvrez /etc/environment dans n'importe quel éditeur de texte comme 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 système (Démarrer - Paramètres - Panneau de configuration - Système).
  2. Sélectionnez l'onglet Avancé.
  3. Cliquez sur le bouton Variables d'environnement.
  4. Sous Variables système, cliquez sur le bouton Ajouter, puis sur les lignes suivantes:

    en nom de variable: JAVA_HOME

    en valeur de la variable: C:\Program Files\Java\jdk1.x.x_xxx

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

  5. Sous Variables système, sélectionnez Chemin d'accès, puis cliquez sur Modifier, puis sur Nouveau bouton, puis sur la ligne suivante:

    %JAVA_HOME%/bin;




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

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



Il peut être deux ans trop tard, mais j'ai récemment rencontré le même problème et c'est la solution que j'ai trouvée après avoir trouvé ce post :

import javax.tools.ToolProvider

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

Cela devrait fonctionner si java.home pointe vers un répertoire qui n'est pas sous le répertoire JDK et même sur Mac OS où vous auriez classes.jar au lieu de tools.jar.




Dans CentOS7, le paquet de développement va installer tools.jar. Le fichier n'est pas présent dans java-1.8.0-openjdk

sudo yum install java-1.8.0-openjdk-devel




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. Vérifiez que C: \ Program Files \ Java \ jre1.8.0_121 contient une installation JDK valide.

  • Dans Android Studio, vérifiez votre emplacement SDK.
  • Fichier, structure du projet, emplacement du SDK, emplacement du JDK.
  • Exemple: C: \ android-studio \ android-studio \ jre
  • Copiez le fichier tools.jar dans le dossier C: \ android-studio \ android-studio \ jre \ lib dans le dossier C: \ Program Files \ Java \ jre1.8.0_121 \ lib.
  • Recommencez.



J'ai eu un cas similaire en utilisant Ubuntu . La machine n'avait que le JRE installé. Donc, je viens d'exécuter la commande ci-dessous pour installer le JDK .

sudo apt install openjdk-8-jdk




Comme les autres réponses, j'ai défini la propriété org.gradle.java.home dans le fichier gradle.properties . Mais le chemin avec \ separators ne fonctionnait pas (en se basant sur Windows 10):

La maison Java fournie via 'org.gradle.java.home' n'est pas valide. Répertoire invalide: 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: / Program Files / 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 à partir d'éclipse cela fonctionnait aussi:

  • Dans Fenêtre> Préférences> Gradle> Arguments, spécifiez Workspace JRE et spécifiez votre JDK.
  • Dans Fenêtre> Préférences> Java> InstalledJREs, spécifiez votre JDK par défaut





Related