正常的,
当你运行ant的时候,它会从ant_home找相应的可执行命令工具
而ant.bat和ant.cmd都在bin下

解决方案 »

  1.   

    多谢楼上的回复。“当你运行ant的时候,它会从ant_home找相应的可执行命令工具”
    __________________________________________________________
    这个按照我以前的理解是当你在cmd中输入ant三个字符回车的时候,
    系统会根据你path中设置的路径中去找,现在在path中我设置了c:\ant\bin
    那么可以找到ant.bat,ant.cmd。这个我觉得和ANT_HOME设置
    (如果我是硬编码c:\ant\bin而不是%ANT_HOME%\bin的话)并没有什么关系?
    如果我不是硬编码,而是在path中设置为%ANT_HOME%\bin),那么如果ANT_HOME设置为c:\ant\bin,
    在cmd下输入ant回车,系统就会报错,找不到可执行的命令。是不是我一开始的理解就是错的。现在问另一个问题:这个ant_home设置的真正目的是什么?分不够我另开贴给分。多谢。
      

  2.   

    在cmd下运行了ant -version,结果并没有看到ant当前的版本,而是一堆帮助信息。--------------------------------------------
    请把这一堆帮助信息贴出来看看如果ant的安装目录是c:\ant
    那么ANT_HOME=c:\ant是正确的设置这个ant_home设置的真正目的是什么?
    --------------------------------------------
    ANT_HOME设置的目的是为一些使用ant来构建/部署/运行的工具(比如iReport)可以很方便地定位ant的安装目录
      

  3.   

    在cmd下运行了ant -version,结果并没有看到ant当前的版本,而是一堆帮助信息。--------------------------------------------
    请把这一堆帮助信息贴出来看看如果ant的安装目录是c:\ant
    那么ANT_HOME=c:\ant是正确的设置这个ant_home设置的真正目的是什么?
    --------------------------------------------
    ANT_HOME设置的目的是为一些使用ant来构建/部署/运行的工具(比如iReport)可以很方便地定位ant的安装目录
      

  4.   

    帮助信息。
    Usage: java [-options] class [args...]
               (to execute a class)
       or  java [-options] -jar jarfile [args...]
               (to execute a jar file)where options include:
        -client       to select the "client" VM
        -server       to select the "server" VM
        -hotspot      is a synonym for the "client" VM  [deprecated]
                      The default VM is client.    -cp <class search path of directories and zip/jar files>
        -classpath <class search path of directories and zip/jar files>
                      A ; separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
        -D<name>=<value>
                      set a system property
        -verbose[:class|gc|jni]
                      enable verbose output
        -version      print product version and exit
        -version:<value>
                      require the specified version to run
        -showversion  print product version and continue
        -jre-restrict-search | -jre-no-restrict-search
                      include/exclude user private JREs in the version search
        -? -help      print this help message
        -X            print help on non-standard options
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      enable assertions
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      disable assertions
        -esa | -enablesystemassertions
                      enable system assertions
        -dsa | -disablesystemassertions
                      disable system assertions
      

  5.   

    如果单单用ant来构建的话(我是指只用ant来运行build.xml的话),那么ANT_HOME并没有什么用?
      

  6.   

    你的理解没错。ANT_HOME是ANT根目录,而PATH中的路径就是可执行文件的所在目录,
    看看JAVA_HOME设置了吗,等等
    执行ANT会自动查找当前目录中的build.xml文件,否则需要在ANT后面需要XML文件参数。
    设置ANT_HOME只是为了方便,修改它,而不用修改PATH中数据,还有就是其他软件需要这些数据。
      

  7.   

    谢谢大家,现在的问题是,我一开始的配置是对的,ANT_HOME设置成c:\ant, PATH中设置c:\ant\bin
    为什么在cmd下运行任何的build.xml和ant -version都打出的是些帮助信息,而ANT_HOME设置成c:\ant\bin反而都能出正确的结果,有人遇见过这种情况么?
      

  8.   

    我在path里设置了ant的bin目录  并没有设置ANT_HOME 可以正常编译。
    我也很奇怪没有 ANT_HOME  也可以正常使用。看了上面的说法 可能是在ant的其他方面的使用时会用到吧。
      

  9.   

    回楼上的。
    ANT_HOME的设置是对于其他的一些工具,软件用到ANT的时候,方便定位才设置的。
    本身我们在CMD下用ant命令来编译,打包,发布程序的时候和ANT_HOME并没有什么
    关系。只要设置PATH就可以了。
      

  10.   

    可能是你的目录有问题了,目录结构难道是ANT\bin\bin,不过安装的时候压缩文件名称确实有BIN这个单词。哈哈,不过可能性不大