49

运行 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 路径的环境变量。任何想法为什么?

4

5 回答 5

36

有两个目录看起来像 JDK。

  C:\Program Files\Java\jdk1.7.0_02
  C:\Program Files (x86)\Java\jdk1.7.0_02\

这可能是由于安装了 64 位和 32 位 JDK 造成的?无论如何,ant.batjava.exe看到的应该来自​​ JDK。如果 JRE在路径中首先出现,则将用于猜测 JDK 位置。java.exe

将 '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 中)

于 2012-02-04T14:56:23.323 回答
11

我也遇到了同样的问题所以我只是从最后删除了 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

于 2013-01-19T02:22:31.790 回答
4

PATH 中项目的顺序很重要。如果各种 java 安装有多个条目,则将使用 PATH 中的第一个条目。

在安装像 Oracle 这样的产品后,我遇到了类似的问题,它把JRE放在 PATH 的开头。

确保您要加载的 JDK 是 PATH 中的第一个条目(或至少它出现在出现之前C:\Program Files\Java\jre6\bin)。

于 2012-02-05T19:42:25.850 回答
3

确保使用 JDK 的根文件夹。不要将“\lib”添加到 tools.jar 物理所在路径的末尾。我花了一个小时才弄明白。此外,这篇文章将帮助您了解 Ant 在哪里寻找 tools.jar:

为什么 ANT 告诉我 JAVA_HOME 是错误的,而实际上它不是?

于 2012-09-20T17:08:32.583 回答
2
  1. 尝试根据本教程再次检查:http: //vietpad.sourceforge.net/javaonwindows.html

  2. 尝试重新启动系统。

  3. 如果没有,尝试运行“cmd”并在那里输入“java”,它会打印什么吗?

于 2012-02-02T20:30:51.010 回答