ant构build:无法findtools.jar。 预计在C:\ Program Files \ Java \ jre7 \ lib \ tools.jar中find它

我知道这个问题很受欢迎,但没有任何解决scheme可以帮助我。 我用这个 , 这个 , 这个和这个解决scheme,但没有人帮助我。

我想实现uiautomatortesting,并需要build立我的build.xmlant,但得到这个奇怪的错误。

我使用Windows 8.1

我的JAVA_HOME系统variables设置为c:\ programs files \ java \ jdk1.7.0_51和c:\ programs文件(x86)\ java \ jdk1.7.0_51

我的PATH系统variables也设置为%JAVA_HOME%/ bin,my%ANT_HOME%设置为c:\ apache-ant。

但是当我在android应用程序中执行ant build时,我得到了

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 

但是我的JAVA_HOME指向了正确的JDK! 我对此感到困惑。 我也重build了我的几次,我也一样。

如果有人帮助我会很高兴。

Solutions Collecting From Web of "ant构build:无法findtools.jar。 预计在C:\ Program Files \ Java \ jre7 \ lib \ tools.jar中find它"

我也有这个问题,并通过设置这样的variables来解决它:

 [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 

注:将所有这些设置在系统variables中,而不是在用户variables中。

这解决了我的问题。

希望能帮助到你。

要恢复这个问题,你可以直接将tools.jar从“C:\ ProgramFiles \ Java \ jdk1.7.0 \ lib”复制到“C:\ Program Files \ Java \ jre7 \ lib \”中。 。

有用!..

我解决了将%JAVA_HOME%设置为启动PATH的问题。 它对我来说很有效,当我把它设置到一开始。

关于tools.jar ,我遇到了以下情况:下载ant时,它带有开放的java 7.但是,我下载的系统使用Java 8 u 40( Oracle版本)。 因此,当我通过linux中的一个软链接将lib / jre指向tools.jar的位置时,我得到了错误,现在版本/颠覆不匹配。 这是因为ant使用的是版本7, Oracle的tools.jar现在是版本8。

解决方法是使用上面的帮助(将JAVA_PATH设置为我的Oracle版本的Java 8u40),这样编译器和tools.jar文件的版本是相同的。

我所在的场景,因此在我的/home/david/Desktop/Android5.0/jdk1.8.0u40目录中有来自Oracle的jdk,它们来自/ home / david / Desktop / Android5 .0目录,我的Eclipse工作区在/ home / david / workspace – 现在我希望能够更好地去。

ant-file build.xml放在我的/ home / david / workspace目录中 – 看起来像这样:

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

这个问题中的java文件–HelloWorld.java正被放到/ home / david / workspace / build / src / oata目录中 – 现在编译到它的目的地,你可以看到上面的jar文件也build。

没错 – 有一种方法可以让一个版本的Java假装成另一个版本 – 但我不想去那里,因为我正在build立一个构build环境,在那里我可以从存储库中提取,构build和存储build成的代码到一个下载网站。

上面的build.xml示例稍微修改了以下用于构build的Ant教程: https : //ant.apache.org/manual/tutorial-HelloWorldWithAnt.html

伙计们 – 希望它也适用于你,因为ant确实是最好的构build方法之一,你可以从命令行调用它,你可以使它从存储库中select文件(GitHub或BitBucket等),那么你可以将编译后的结果通过FTP传输到开发者的首选下载网站,你可以将代码压缩到一起,以便在最坏的情况下准备好版本并进行压缩。

将tools.jar从C:\ Program Files \ Java \ jdk1.8.0_91 \ lib复制到C:\ Program Files \ Java \ jdk1.8.0_91 \ bin。 对我而言,我的工作很好

  1. 系统中设置 – variables:

    • JAVA_HOME:C:\ Program Files \ Java \ jdkVERSION
    • ANT_HOME:C:\ Program Files \ apache-ant-VERSION
    • path:%JAVA_HOME%\ bin;%ANT_HOME%\ bin; …(在PATHvariables的开头)
  2. 用户variables中删除与Java / Ant相关的所有内容

  3. 重新启动命令行(!)以在运行实例的上下文中接收新的variables。

检查JAVA_HOMEPATHvariables的值,有时候可能会放在

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

代替

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

PATH=%JAVA_HOME%\bin;%PATH% .

只是在CLI中回显PATHvariables。

 echo %PATH%.