继Newtopian的建议,您可以快速确认,如果该行为是在终端
C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19
C:\>ant debug
同时运行的问题,我不知道,如果你输入的文本到JAVA_HOME环境变量的字面意思是“C:\ Program Files \ Java \ jdk1.6.0_19”,即带引号,但如果是这样,你应该删除引号,因为它们会抛出ant.bat。
下面是ant.bat
:checkJava
set _JAVACMD=%JAVACMD%
if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
goto checkJikes
:noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=java.exe
... omitted ...
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
相关位。如果没有帮助,您可以发布您的调试任务?
两个选项,使其永久化:
运行以下命令:
C:\>REG delete HKCU\Environment /V JAVA_HOME
C:\>REG delete HKLM\Environment /V JAVA_HOME
C:\>REG add HKCU\Environment /V JAVA_HOME /d "C:\Program Files\Java\jdk1.6.0_19"
(基本上,确保你只有一个JAVA_HOME设置,它是正确的,可以肯定的在这样做后关闭并重新打开终端)
如果一切都失败了,蹩脚的批处理文件的解决方案:
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19
ant %*
保存为ant_wrapper.bat
(或其他),你应该能够做到ant_wrapper debug
。
(这两种解决方案是未经测试)
是,一旦你的JAVA_HOME是正确的,在JDK点,它会找到的tools.jar。 – 2010-04-06 01:25:12
我发现调试这个问题难以容忍,所以简单的把tools.jar放在Ant期望找到的地方。有时投降是最好的政策。 – 2010-04-06 01:59:42
你知道吗?我早些时候正在考虑同样的事情,但我害怕在工作电脑上试用它。感谢您的建议。现在工作正常。 – StormShadow 2010-04-06 02:39:05