运行ant时“无法找到tools.jar” [重复]
Posted
技术标签:
【中文标题】运行ant时“无法找到tools.jar” [重复]【英文标题】:"Unable to locate tools.jar" when running ant [duplicate] 【发布时间】:2012-02-25 12:42:31 【问题描述】:运行 ant 时,我收到以下消息:
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
我将 JAVA_HOME 设置为C:\Program Files\Java\jdk1.7.0_02
,PATH 包括C:\Program Files (x86)\Java\jdk1.7.0_02\bin
,CLASSPATH 包括C:\Program Files (x86)\Java\jdk1.7.0_02
,ANT_HOME 设置为C:\ant
。
似乎 ant 忽略了所有这些设置并在其他地方寻找 tools.jar。没有指向 jre6 路径的环境变量。任何想法为什么?
【问题讨论】:
你确定ant文件夹里没有类路径设置吗? 我不能说,但我可能会遗漏一些东西。我会寻找什么来找到它? 请验证系统环境变量的 JAVA_HOME 路径...它必须像“C:\Program Files\Java\jdk1.6.0_12\”并尝试杀死所有 java 进程并尝试它将运行 100%。 安装JDK,将新的系统变量“JAVA_HOME”添加到有两个目录看起来像 JDK。
C:\Program Files\Java\jdk1.7.0_02
C:\Program Files (x86)\Java\jdk1.7.0_02\
这可能是因为安装了 64 位和 32 位的 JDK?无论如何,ant.bat 看到的java.exe
应该来自JDK。如果 JRE 的 java.exe
在路径中最先出现,则将用于猜测 JDK 位置。
将 'C:\Program Files (x86)\Java\jdk1.7.0_02\bin' 或 'C:\Program Files\Java\jdk1.7.0_02' 作为路径中的第一个参数。
进一步的步骤:
您可以输出ant -diagnostics
并寻找有趣的键。 (假设 Sun/Oracle JDK)。
java.class.path
java.library.path
sun.boot.library.path
(在我的例子中,tools.jar 出现在 java.class.path 中)
【讨论】:
感谢 -diagnostics 提示。这表明java.home
系统属性指向 1.6 JRE,尽管所有环境变量都指向 1.7。不能解决问题,但这是进一步调查的起点。
ant 需要 'JDK'。 JDK 中的 java.exe 必须首先出现。查看 Mads Hansen 的评论
我有同样的错误。当我尝试 ant -diagnostics 时,我得到了 java.home:C:\Program Files\Java\jre6。但我已将 JAVA_HOME 设置为 C:\Program Files (x86 )\Java\jdk1.6.0_25.什么问题
@user1767260 : C:\Program Files (x86)\Java\jdk1.6.0_25 是路径中的第一个条目吗?
system32 中的 java.exe 是一个虚拟的:参见mindprod.com/jgloss/javaexe.html#MULTIPLES。你可以把你的 JDK/bin 作为第一个入口。【参考方案2】:
我也遇到了同样的问题,所以我只是从末尾删除了 JDK 路径,甚至在所有 System 或 Windows 32 路径之前将其放在 start 中。
之前是这样的:
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\100\ Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Users\ Rajkaran\AppData\Local\Smartbar\Application\;C:\Users\Rajkaran\AppData\Local\Smartbar\Application\;C:\Program Files\doxygen\bin;%JAVA_HOME%\bin; %ANT_HOME%\bin
所以我是这样设计的:
%JAVA_HOME%\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ ;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn \VSShell\Common7\IDE\;C:\Users\Rajkaran\AppData\Local\Smartbar\Application\;C:\Users\Rajkaran\AppData\Local\Smartbar\Application\;C:\Program Files\doxygen\bin; %ANT_HOME%\bin
【讨论】:
运行类似 '''where java''' 的命令,它将列出 java 是否在这些其他目录中,并优先于您的 JAVA_HOME 路径以及哪个 java 是第一个。这可能会显示其他路径正在与它混淆。我已经看到其他 java 安装(JRE 和 JDK)也将 java 放置在 ProgramData\Oracle 和 Windows\System32 中,因此您也可以从这些目录中清除 java 程序。【参考方案3】:PATH 中项目的顺序很重要。如果各种 java 安装有多个条目,将使用 PATH 中的第一个条目。
在安装 Oracle 等产品后,我遇到了类似的问题,该产品将 它的 JRE 放在 PATH 的开头。
确保要加载的 JDK 是 PATH 中的第一个条目(或至少出现在 C:\Program Files\Java\jre6\bin
出现之前)。
【讨论】:
【参考方案4】:确保使用 JDK 的根文件夹。不要将“\lib”添加到 tools.jar 物理所在路径的末尾。我花了一个小时才弄明白。此外,这篇文章将帮助您了解 Ant 在哪里寻找 tools.jar:
Why does ANT tell me that JAVA_HOME is wrong when it is not?
【讨论】:
【参考方案5】:尝试按照本教程再次检查:http://vietpad.sourceforge.net/javaonwindows.html
尝试重新启动系统。
如果没有,尝试运行“cmd”并在其中输入“java”,它会打印什么吗?
【讨论】:
对我的回答进行反思可能会很好。你试过什么? 我尝试了所有这些,但没有成功以上是关于运行ant时“无法找到tools.jar” [重复]的主要内容,如果未能解决你的问题,请参考以下文章