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个回答

0

当我运行%ANT_HOME%\bin\ant.bat时,出现了“C:\Program”未被识别为内部或外部命令、可操作的程序或批处理文件的错误。

我发现我需要用双引号将命令包装起来,以便在路径字符串上发生正确的转义。

修复方法: "%ANT_HOME%\bin\ant.bat" --NOT-- %ANT_HOME%\bin\ant.bat

希望这能帮到你!


0

谢谢,这个方法在Windows 8、x64上也适用,使用Java x64。

我不想在系统设置中添加所有那些垃圾,所以我创建了一个批处理文件,在我想要使用Android SDK之前运行它。这是它的内容:

    set ANDROID_SDK_PT=C:\Program Files\eclipse\sdk\platform-tools
    set ANDROID_SDK_TOOLS=C:\Program Files\eclipse\sdk\tools
    set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_25
    set ANT_HOME=C:\apache-ant
    set PATH=%PATH%;%ANDROID_SDK_PT%;%ANDROID_SDK_TOOLS%;%JAVA_HOME%;%ANT_HOME%\bin

0

我要补充一个我遇到的问题。

顺便说一下,这里的答案对我也有用。我不得不将我的java目录指向特定的SDK版本。非常感谢你。

但是我要补充一点,我必须以管理员身份安装SDK,否则它不会提取tools.jar。我在其他地方找到了这个答案,希望它能帮助别人在这里重复。


0

我遇到了同样的问题。

  1. 检查你的系统信息,Jenkins 可以看到:your_jenkins_url/systemInfo
  2. 在“环境变量”部分中查找“JAVA_HOME”变量。在我的情况下,我找不到它。

因此,如果你没有看到这个变量,那么意味着你的变量没有为 Jenkins 运行的用户设置。你需要将“JAVA_HOME”放入环境变量的“系统变量”部分,而不是“用户变量”。

在此之后重新启动 Jenkins,你的问题应该得到解决。


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