我在Windows XP计算机上安装ant,并按照Apache's manual site的说明操作。它说要设置JAVA_HOME,所以我查了一下,看到没有名为JAVA_HOME的环境变量,一个,并将其设置为“C:\ Program Files \ Java \ jdk1.6.0_19”
然而,当我尝试运行ant debug时,它告诉我JAVA_HOME当前设置为“C:\ Program Files \ Java \ jre6”
我猜JAVA_HOME不是环境变量。但如果它不是一个,我不知道从哪里开始寻找它。有人知道吗?
编辑:哦是的 - 这也是我对tools.jar的烦恼,但我猜测当我解决JAVA_HOME问题时,这将有助于终端找到tools.jar。或者也许我错了。感谢
答案 0 :(得分:5)
根据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
。
(这两种解决方案均未经过测试)
答案 1 :(得分:3)
确保检查用户和系统范围环境变量。我不确定一个人在这里的优先级是什么,但很可能你只检查了一个并在那里创建它并被另一个覆盖。
此外,在创建环境变量时,请确保打开新的命令shell以使更改生效。然后尝试'set',它将列出您刚刚创建的命令提示符在环境中看到的所有环境变量。
如果一切顺利,但Ant仍然没有看到正确的那个,那么如果没有在那里设置javahome,则检查启动ANT的批处理文件。如果确保它使用环境变量并且不尝试再次设置它。
希望这有帮助