运行ant时,我得到以下消息:
Unable to locate tools.jar. Expected to find it in C:Program FilesJavajre6libtools.jar
我将JAVA_HOME设置为C:Program FilesJavajdk1.7.0_02
,PATH包括C:Program Files (x86)Javajdk1.7.0_02bin
,CLASSPATH包括C:Program Files (x86)Javajdk1.7.0_02
,并且ANT_HOME被设置为C:ant
。
ant似乎忽略了所有这些设置,而是在其他地方寻找tools.jar。没有指向jre6路径的环境变量。有什么想法吗?
有两个目录看起来像JDK。
C:Program FilesJavajdk1.7.0_02
C:Program Files (x86)Javajdk1.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中)
我也遇到了同样的问题,所以我只是从最后删除了JDK路径,甚至在所有System或Windows 32路径之前就将其置于启动状态。
以前是这样的:
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
PATH中项目的顺序很重要。如果各种java安装有多个条目,那么将使用PATH中的第一个条目
在安装了像Oracle这样的产品后,我也遇到过类似的问题,该产品将它的JRE放在PATH的开头。
确保要加载的JDK是PATH中的第一个条目(或者至少它出现在C:Program FilesJavajre6bin
出现之前)。
确保使用JDK的根文件夹。不要在路径的末尾添加"\lib",因为tools.jar在物理位置。我花了一个小时才弄明白。此外,这篇文章将帮助您了解Ant在哪里寻找工具
为什么ANT告诉我JAVA_HOME是错误的,而事实并非如此?
-
请根据本教程再次尝试检查:http://vietpad.sourceforge.net/javaonwindows.html
-
尝试重新启动系统。
-
如果没有,试着运行"cmd"并在那里键入"java",它会打印什么吗?