web-dev-qa-db-fra.com

build ant: impossible de localiser tools.jar. Attendu le trouver dans C: \ Program Files \ Java \ jre7 \ lib \ tools.jar

Je sais que cette question est populaire, mais aucune des solutions ne peut m'aider. J'ai utilisé des solutions this , this , this and this , mais personne ne m'aide.

Je veux implémenter tests uiautomator et j'ai besoin de construire mon build.xml avec ant, mais j'obtiens cette étrange erreur.

J'utilise Windows 8.1

Ma variable système Java_HOME est définie sur c:\program files\Java\jdk1.7.0_51 et sur c:\programs files (x86)\Java\jdk1.7.0_51

Ma variable système PATH est également définie sur% Java_HOME%/bin, mon% ANT_HOME% est défini sur c:\Apache-ant.

Mais quand j'exécute ant build dans le Android derictory app I get the

unable to locate tools.jar. Expected find it in C:\Program Files\Java\jre7\lib\tools.jar
BUILD FAILED
Perhaps Java_HOME does not point to the JDK

Mais mon Java_HOME pointe vers la droite JDK! J'ai confondu avec ça. J'ai aussi reconstruit ma build plusieurs fois, j'ai la même chose.

Sera heureux si quelqu'un m'aide.

22
Rikki Tikki Tavi

J'ai résolu le problème avec la définition de% Java_HOME% pour démarrer le PATH. Cela a fonctionné pour moi lorsque je l'ai réglé exactement au début.

10
Rikki Tikki Tavi

Moi aussi, j'ai eu ce problème et je l'ai résolu en définissant des variables comme ceci:

[1] ANT_HOME - C:\Apache-ant-1.9.3

[2] Java_HOME - C:\Program Files\Java\jdk1.7.0_21

[3] PATH - D:\Android_Development\Android_sdk\platform-tools\;%ANT_HOME%\bin;%Java_HOME%\bin;D:\Android_Development\Android_sdk\tools

Remarque: définissez tous ces paramètres dans les variables système et non dans les variables utilisateur.

Cela a résolu mon problème.

J'espère que cela aide.

34
Smriti

Pour récupérer ces problèmes, vous pouvez simplement copier le fichier tools.jar de "C:\ProgramFiles\Java\jdk1.7.0\lib" directement dans "C:\Program Files\Java\jre7\lib \". Vous réussirez à récupérer les problèmes .

Ça marche!..

16
geek_sandeep
  1. Défini dans les variables système -:

    • Java_HOME: C:\Program Files\Java\jdkVERSION
    • ANT_HOME: C:\Program Files\Apache-ant-VERSION
    • PATH:% Java_HOME%\bin;% ANT_HOME%\bin; ... (au début de la variable PATH)
  2. Supprimer tout ce qui concerne Java/Ant des variables tilisateur -

  3. Redémarrez la ligne de commande (!) Pour recevoir les nouvelles variables dans le contexte de l'instance en cours d'exécution.

2
ataraxis

En ce qui concerne le tools.jar , j'ai vécu ce qui suit: lors du téléchargement de ant, il était livré avec open Java 7 . Cependant, le système que j'avais téléchargé utilise Java 8 u 40 (la version Oracle ). Par conséquent, lorsque J'ai pointé la lib/jre via un lien logiciel sous linux, à la place du tools.jar , j'ai eu l'erreur, que maintenant la version/Subversion ne correspondait pas. Ceci parce que ant utilisait la version 7, et le tools.jar de Oracle était maintenant la version 8.

La solution consistait à utiliser l'aide ci-dessus (avec le paramètre de Java_PATH pour devenir ma Oracle version 8u40 de Java), de sorte que le compilateur et le fichier tools.jar est de la même version.

Le scénario dans lequel je suis, a donc le jdk téléchargé comme il venait d'Oracle dans mon répertoire /home/david/Desktop/Android5.0/jdk1.8.0u40 - le Android packages comme ils sont venus dans le répertoire /home/david/Desktop/Android5.0, mon espace de travail Eclipse dans/home/david/workspace - et maintenant j'espère être mieux.

Le fichier ant-file build.xml est placé dans mon répertoire/home/david/workspace - et il ressemble à ceci:

<project>
    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="oata.HelloWorld"/>
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar">
        <Java jar="build/jar/HelloWorld.jar" fork="true"/>
    </target>

</project>

Le fichier Java dans cette question - HelloWorld.Java, est placé dans le répertoire/home/david/workspace/build/src/oata - et il compile maintenant vers sa destination, vous pouvez voir ci-dessus , et à partir de là, le fichier jar est également en cours de construction.

Vrai - il existe des méthodes où l'on peut faire une version de Java faire semblant d'être une autre - mais je ne voulais pas y aller, car je mets en place un environnement de construction où je peux faire des extraits à partir du référentiel, construire et stocker le code construit dans un site de téléchargement.

L'exemple build.xml ci-dessus est légèrement modifié à partir du didacticiel Ant suivant pour la génération: https://ant.Apache.org/manual/tutorial-HelloWorldWithAnt.html

Les gars - j'espère que cela fonctionne pour vous aussi, car ant est vraiment l'un des meilleurs moyens de construire, car vous pouvez l'invoquer à partir de la ligne de commande, vous pouvez d'abord lui faire choisir des fichiers dans le référentiel (GitHub ou BitBucket etc.), et alors vous pouvez FTP le résultat compilé sur votre site de téléchargement préféré pour les développeurs, vous pouvez compresser le code de telle sorte que vous ayez la version prête et zippée dans le pire des cas ...

2
David Svarrer

Copiez le fichier tools.jar depuis C:\Program Files\Java\jdk1.8.0_91\lib et collez-le dans C:\Program Files\Java\jdk1.8.0_91\bin. Cela a bien fonctionné pour moi dans mon cas

2
konanki chiranjeevi

Vérifiez la valeur de Java_HOME et PATH variable, parfois vous pourriez mettre

Java_HOME="C:\Program Files\Java\jdk1.8.0\bin" .

au lieu de

Java_HOME="C:\Program Files\Java\jdk1.8.0" .

et PATH=%Java_HOME%\bin;%PATH% .

il suffit d'écho de la variable PATH dans CLI.

echo %PATH%.
0
Ganesh Koli