0

我正在 Windows XP 机器上安装 ant,并按照Apache 手册站点上的说明进行操作。说要设置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。或者也许我错了。谢谢

4

2 回答 2

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%

如果这没有帮助,您可以发布您的调试任务吗?


使其永久化的两种选择:

  1. 运行这个:

    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 并且它是正确的;执行此操作后请务必关闭并重新打开终端)

  1. 如果一切都失败了,糟糕的批处理文件解决方案:

    @echo off
    set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19
    ant %*

另存为ant_wrapper.bat(或其他),你应该能够做到ant_wrapper debug

(这两种解决方案都未经测试)

于 2010-04-06T01:15:23.207 回答
3

确保检查用户和系统范围的环境变量。我不确定一个比另一个的优先级是什么,但很可能你只检查了一个并在那里创建它,它被另一个覆盖。

此外,当您创建环境变量时,请确保打开一个新的命令 shell 以使更改生效。然后尝试“设置”,它将列出您刚刚创建的命令提示符的环境中看到的所有环境变量。

如果那里一切正常,但 Ant 仍然没有看到正确的文件,那么检查启动 ANT 的批处理文件,如果那里也没有设置 javahome。如果是,请确保它使用环境变量并且不尝试再次设置它。

希望这可以帮助

于 2010-04-06T00:55:17.443 回答