Ant + Vista 64:无法找到tools.jar(jre/jdk冲突?)

17

我正在尝试在一个Vista 64环境中使用Ant来构建一些DocBook/XML文件。

然而,我无法解决这个错误消息。有人有建议吗?

C:\Users\Robert Admin>ant 无法找到tools.jar。期望在C:\Program Files\Java\jre6\lib\tools.jar中找到它 Buildfile: build.xml不存在! 构建失败

通过搜索,我发现这个tools.jar消息是ant无法找到jdk的结果。事实上,C:\Program Files\Java\jre6\lib\tools.jar是另一个程序安装的JRE(我猜测)。tools.jar位于这里:C:\Program Files\Java\jdk1.6.0_22\lib

我似乎不能告诉Ant去查找JDK路径,只能查找已经存在的JRE路径。(从Ant文档来看,似乎JRE是不够的)。

C:\Users\Robert Admin>echo %JAVA_HOME%

C:\Program Files\Java\jdk1.6.0_22\bin

C:\Users\Robert Admin>ant

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li
b\tools.jar
Buildfile: build.xml does not exist!
Build failed

C:\Users\Robert Admin>echo %ANT_HOME%

I:\My Documents\1latest\ant    
C:\Users\Robert Admin>where java

C:\Windows\System32\java.exe
C:\Program Files (x86)\Java\jre6\bin\java.exe
C:\Program Files\Java\jdk1.6.0_22\bin\java.exe

C:\Users\Robert Admin>java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

更新 #1。我尝试卸载了64位的JDK并安装了32位的JDK。结果:

C:\Users\Robert Admin>java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

C:\Users\Robert Admin>ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li
b\tools.jar
Buildfile: build.xml does not exist!
Build failed
C:\Users\Robert Admin>echo %JAVA_HOME%
C:\Program Files (x86)\Java\jdk1.6.0_22\bin

只需在“Path”中使jdk ... \bin出现在jre6 \bin之前即可。 - khachik
我在PATH系统变量中删掉了对jre6\bin的引用,现在我的路径系统变量中只有一个Java引用。结果相同。注意,QTJAVA和CLASSPATH都引用了.;C:\Program Files(x86)\Java\jre6\lib\ext\QTJava.zip,但这似乎不会发生冲突。 - idiotprogrammer
14个回答

20

我曾经有同样的问题,因为我的JAVA_HOME路径设置不正确(就像问题描述中的那样)。它被设置为jdk的bin目录。

所以它被设置为: C:\Program Files (x86)\Java\jdk1.6.0_25\bin

而它应该被设置为: C:\Program Files (x86)\Java\jdk1.6.0_25

更新这个环境变量就解决了我的问题。


6

我通过在计算机->属性->环境变量中创建JAVA_HOME来解决了这个问题。 在命令行中手动设置没有起作用。 -b


6
我在一台64位Windows 7机器上使用Ant 1.8.2时遇到了这个问题。解决方法是使用#bigfix提到的管理员工具设置环境变量。按照Windows的Ant安装说明进行操作。但不要将路径设置为%ANT_HOME%\bin。而是使用显式路径,如C:\jdk-1.5.0.05\bin。
我的第一次测试失败了,因为我的命令窗口已经打开并且正在使用旧的环境变量。关闭它并打开一个新的窗口。然后再尝试测试。对我来说起作用了。

Windows 7 操作指南:Windows键 + PAUSE|BREAK > 高级系统设置 > 环境变量。编辑或创建名为 ANT_HOME 的用户变量,并将其设置为 Apache Ant 的目录。编辑或创建名为 JAVA_HOME 的用户变量,并将其设置为 JDK 的目录。不要使用任何一个路径中的 "bin" 文件夹。重新启动相关程序(包括命令提示符,如果您在使用它)。 - Radley Sustaire

6

我通过创建系统变量JAVA_HOME到C:\Program Files\Java\jdk1.6.0_25来解决了这个问题。不要在后面加分号。首先,我加了分号,结果出现了错误。我去掉了分号,它就起作用了。


5
你只需要在环境变量中设置JAVA_HOME路径即可。在Windows 7中,进入“系统属性 -> 高级 -> 环境变量”并添加JAVA_HOME。在我的情况下,值为:
C:\Program Files\Java\jdk1.7.0_07
这解决了我的问题。该变量指向正确的Java位置,使得Ant能够正常运行。

4

我知道这个帖子有点老了,但是我现在也遇到了同样的问题。我所做的就是将tools.jar复制到jre/lib文件夹中,然后一切正常了。

我使用的是Windows 7操作系统,JDK版本是1.7,正在尝试安装ant 1.8.2。

谢谢。


你在哪里找到了tools.jar?我的安装包里面没有它。 - Kenny Wyland
1
@KennyWyland:如果在正常的Java安装中,C:\Program Files\Java\jdk1.7.0\lib\tools.jar...你可以将这个tools.jar文件复制到C:\Program Files\Java\jre7\lib文件夹中...这就是我所做的。 - Inco Mob
1
不要指向Java运行时环境,而是要指向Java SDK,不要将Env变量设置为...Java/jre7,而是设置为...Java/jdk1.07.0或您安装的任何版本。Ant安装手册指出这会限制您的Ant安装。很抱歉在旧帖子中发布,但由于某种原因,我按照此处提到的安装说明进行了操作,这是Ant安装不推荐的方式。 - raphie

3

您可能正在使用C:\Windows\system32目录中的Java而不是已安装的JDK。我设置了一个JAVA_HOME环境变量,并在我的路径开头放置了%JAVA_HOME%\bin,问题就解决了。


2

为什么不试试32位版本呢?你安装了32位和64位两个版本可能会存在问题。尝试使用32位版本,这样就不会看到任何64位版本。

这应该可以解决你的问题。


谢谢。我不得不使用不同的安装程序进行卸载/重新安装。我以为它应该安装其中之一,但事实并非如此。但是我回去重新下载了它,然后安装程序就起作用了。我没有具体的做x、y、z就能使其工作的方法,但从你的帖子中很明显当ANT运行时它无法找到所需的jdk。祝好运。 - phillip
1
是的,我会尝试在另一个系统上安装并查看发生了什么。然后,也许可以尝试一下Ant邮件列表。 - idiotprogrammer

1

我遇到了以下环境问题:

  • Windows 7
  • Java版本jdk1.6.0_33
  • apache-ant-1.6.5

我收到了ant构建消息,内容为“无法找到tools.jar。期望在E:\Java\jre6\lib\tools.jar中找到它”,而我的JDK安装在E:\Java\jdk1.6.0_33\,JRE安装在E:\Java\jre6\

原因:

我的问题是在PATH系统环境变量的两个不同位置(即中间有其他变量)上设置了两次ANT_HOME

解决方案:

我删除了指向错误位置的ANT_HOME变量,一切正常。


0

我曾经遇到过与 ant setup 相同的问题。解决方法就是一样的。

Unable to locate tools.jar`. Expected to find it in C:\Program Files\Java\jre6\li b\tools.jar 
Buildfile: build.xml does not exist! Build failed. 

我删除了环境变量中所有的JRE路径,并添加了JDK的bin路径。最后,我输入%ANT_PATH%/bin而不是%ANT_PATH%\bin。它可以正常工作。

希望能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接