有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java安装ant;显然是误会了爪哇之家

我正在Windows XP机器上安装ant,并按照Apache's manual site上的说明进行操作。它说要设置JAVA_HOME,所以我检查了一下,发现没有名为JAVA_HOME的环境变量,制作了一个,并将其设置为“C:\Program Files\JAVA\jdk1.6.0\u 19”

然而,当我尝试运行ant debug时,它告诉我JAVA_HOME当前设置为“C:\Program Files\JAVA\jre6”

我猜JAVA_HOME不是一个环境变量。但如果不是,我就不知道从哪里开始寻找它。有人知道吗

编辑:哦,是的,这让我担心工具。jar,但我猜当我修复JAVA_HOME问题时,这将帮助终端找到工具。罐子也是。也许我错了。谢谢


共 (2) 个答案

  1. # 1 楼答案

    确保同时检查用户和系统范围环境变量。我不确定这里一个的优先级高于另一个,但很可能您只检查了一个,并在那里创建了它,它被另一个覆盖

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

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

    希望这有帮助

  2. # 2 楼答案

    按照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。蝙蝠

    以下是ant提供的相关信息。球棒

    :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 set,并且它是正确的;确保完成此操作后关闭并重新打开终端)

    1. 如果所有其他方法都失败,糟糕的批处理文件解决方案:

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

    另存为ant_wrapper.bat(或其他什么),您应该能够执行ant_wrapper debug

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