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

Posted

技术标签:

【中文标题】Ant + Vista 64:“无法找到 tools.jar”(jre/jdk 冲突?)【英文标题】:Ant + Vista 64 : "Unable to locate tools.jar" (jre/jdk conflict?) 【发布时间】:2011-05-21 16:22:16 【问题描述】:

我正在尝试在 vista 64 环境中使用 ant 来构建一些 docbook/xml 文件。

但是,我无法解决此错误消息。有人有建议吗?

C:\Users\Robert Admin>ant 无法找到 tools.jar。预计在 C:\Program Files\Java\jre6\li 中找到它 b\tools.jar 构建文件:build.xml 不存在! 构建失败

谷歌搜索,我看到这个 tools.jar 消息是 ant 无法找到 jdk 的结果。实际上,C:\Program Files\Java\jre6\li b\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

【问题讨论】:

只需让jdk...\bin 出现在Pathjre6\bin 之前。 我删除了 PATH 系统变量中对 jre6\bin 的引用。现在我的路径系统变量中只有一个 java 引用。结果相同。请注意,QTJAVA 和 CLASSPATH 都引用了 .;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip 但这似乎不会冲突。 【参考方案1】:

我将添加另一个我遇到的问题。

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

但我要补充一点,我必须以管理员身份安装 SDK,或者它没有提取 tools.jar。我在其他地方找到了这个答案,我希望它可以帮助有人在这里重复它。

【讨论】:

【参考方案2】:

谢谢,这也适用于使用 Java x64 的 Windows 8、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

【讨论】:

【参考方案3】:

运行 %ANT_HOME%\bin\ant.bat 时出现“C:\Program”不是内部或外部命令、可运行程序或批处理文件错误

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

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

希望有帮助!

【讨论】:

【参考方案4】:

我遇到了同样的问题。 已成功解决。

    检查 jenkins 看到的系统信息:your_jenkins_url/systemInfo 在“环境变量”部分中查找“JAVA_HOME”变量。就我而言,我无法找到它。

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

在此之后重新启动 jenkins,您的问题必须得到解决。

【讨论】:

【参考方案5】:

我曾经遇到过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. 

我删除了%PATH%环境中的所有jre路径并添加了jdk bin路径。最后我输入%ANT_PATH%/bin 而不是%ANT_PATH%\bin。它有效。

可能会有所帮助。

【讨论】:

【参考方案6】:

您只需要在您的环境中设置 JAVA_HOME 路径。在 Windows 7 中,转到“系统属性 -> 高级 -> 环境变量”并添加 JAVA_HOME。我的情况是:

C:\Program Files\Java\jdk1.7.0_07

这为我解决了这个问题。此变量将 Ant 指向正确的 Java 位置。

【讨论】:

【参考方案7】:

我遇到了这个环境问题:

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

我收到 ant build 消息为“Unable to locate tools.jar. Expected to find it in E:\Java\jre6\lib\tools.jar”,我的 JDK 安装在 E:\Java\jdk1.6.0_33\,JRE 安装在 E:\Java\jre6\

原因:

我的问题是ANT_HOME 在两个不同位置的 PATH 系统环境变量中设置了两次(意味着介于两者之间的一些其他变量)。

解决办法:

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

我知道这个线程有些老了..但我现在也遇到了..我所做的就是将 tools.jar 复制到 jre/lib 文件夹中并且工作正常。

我在 Windows 7 ,JDK 1.7 环境中并尝试安装 ant 1.8.2

谢谢

【讨论】:

您在哪里找到 tools.jar?我的安装在任何地方都没有。 @KennyWyland : 如果在正常的 java 安装中,C:\Program Files\Java\jdk1.7.0\lib\tools.jar...您可以将此 tools.jar 文件复制到 C:\Program Files\Java\jre7\lib 文件夹..这就是我所做的。 您必须指向 Java SDK,而不是指向 Java 运行时环境,不要将 Env 变量设置为 ...Java/jre7,而是设置为 ...Java/jdk1.07.0 或无论您安装了什么版本。 Ant 安装手册指出这限制了您的 Ant 安装。很抱歉在旧帖子中发帖,但出于任何原因,我按照此处提到的安装说明执行了 Ant Installation 不推荐的操作。【参考方案11】:

我遇到了同样的问题,因为我的 JAVA_HOME 路径设置不正确(就像 OP 一样)。它被设置为 jdk 的 bin。

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

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

更新这个环境变量为我修复了它。

【讨论】:

【参考方案12】:

我在 64 位 Windows 7 机器和 Ant 1.8.2 上遇到了这个问题。解决方案是使用#bigfix 提到的管理工具来设置环境变量。按照适用于 Windows 的 Ant 安装说明进行操作。但不要将路径设置为 %ANT_HOME%\bin。而是使用显式路径,例如 C:\jdk-1.5.0.05\bin。

我的第一次测试失败了,因为我的命令窗口已经打开并使用旧的环境变量。关闭它并打开一个新的。然后尝试测试。它对我有用。

【讨论】:

Windows 7 说明:Windows Key + PAUSE|BREAK > 高级系统设置 > 环境变量。编辑或创建一个名为ANT_HOME 的用户变量,设置为Apache Ant 的目录。编辑或创建一个名为JAVA_HOME 的用户变量,设置为JDK 的目录。 任一路径都不要使用“bin”文件夹。重新启动有问题的程序(包括命令提示符,如果你正在使用的话)。【参考方案13】:

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

【讨论】:

【参考方案14】:

为什么不试试 32 位版本。您安装的两个版本是 32 和 64 之间可能存在问题。请尝试 32 位版本,这样您就看不到任何 64 位版本。

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

【讨论】:

谢谢。我不得不使用不同的安装程序卸载/重新安装。我认为它应该安装一个或另一个,但它没有。但我回去重新下载它并且安装程序工作。我没有特定的 x,y,z 并且它会起作用,但是从您的帖子中可以明显看出,当 ANT 运行时,它没有根据需要找到 jdk。祝你好运。 是的,我会尝试在另一个系统上安装,看看发生了什么......然后,也许试试 ant 邮件列表。

以上是关于Ant + Vista 64:“无法找到 tools.jar”(jre/jdk 冲突?)的主要内容,如果未能解决你的问题,请参考以下文章

NUnit 不能在 Visual Studio 2003 中的 Vista x64 上运行

您会为 Windows Vista 推荐 32 位还是 64 位?

为啥 Windows Vista 64 位默认使用 32 位 cmd.exe? (特定于机器)

无法在 Vista x64 的 C# 应用程序中加载 C++ DLL

无法从 Vista x64 Windows 服务连接到 SQL Server 2005 Db

适用于Windows Vista的最佳Subversion客户端(64位)[关闭]