提问者:小点点

Apache Ant安装错误的解决方法


有人可以帮忙提供有关Windows中Apache Ant安装错误的解决方法的说明吗?

下面的代码片段描述了三种解决方法之一。如果你能成功地让其中一个工作,你能分享一下吗?

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696

(1)使用-DJ ava . net . preferipv 4 stack = true运行-为java二进制文件添加防火墙例外。

(2)使用-DJ ava . net . preferipv 4 stack = true运行(这将禁用IPv6并专门使用AF_INET套接字)

(3) 或者在防火墙中禁用有状态FTP检查(注册表设置或netsh命令)

============

设置:

安装Apache Ant:

>

  • 在下载二进制文件http://ant.apache.org/

    导航到此路径以获取安装说明:手动

    将提取的文件夹(包含bin文件夹)移动到C:\source_code\apache-ant-1.8.3\或%ANT_HOME%环境变量中使用的目录

    视窗7

    (删除环境变量上的尾随“\”字符)

    > < li>

    在"系统变量"部分下,单击"添加"

    在“系统变量”部分下,单击“添加”

    在“系统变量”部分下,单击“路径”环境变量,单击“编辑”

    重新启动命令提示符(以管理员身份运行)

    确保Windows看到Apache Ant:

    C:\source_code\apache-ant-1.8.3

    导航到http://ant.apache.org/

    ========================

    FTP错误:

    C:\source_code\apache-ant-1.8.3>ant -f fetch.xml -Ddest=system
    Buildfile: C:\source_code\apache-ant-1.8.3\fetch.xml
    
    pick-dest:
         [echo] Downloading to C:\source_code\apache-ant-1.8.3\lib
    
    ...
    
    -fetch-netrexx:
          [ftp] getting files
    
    BUILD FAILED
    C:\source_code\apache-ant-1.8.3\fetch.xml:325: The following error occurred whil
    e executing this line:
    C:\source_code\apache-ant-1.8.3\fetch.xml:144: java.net.SocketException: Permiss
    ion denied: recv failed
            at java.net.SocketInputStream.socketRead0(Native Method)
            at java.net.SocketInputStream.read(SocketInputStream.java:150)
            at java.net.SocketInputStream.read(SocketInputStream.java:121)
            at java.io.BufferedInputStream.read1(BufferedInputStream.java:273)
            at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
            at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
            at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
            at org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStr
    eam.java:114)
            at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream
    .java:535)
            at java.lang.Thread.run(Thread.java:722)
    
    Total time: 3 seconds
    
    C:\source_code\apache-ant-1.8.3>
    

    ==============

    我尝试制定入站和出站 Windows 防火墙规则以允许此程序通过。

    %ProgramFiles%\Java\jdk1.7.0_02\bin\java.exe
    

    我还尝试使用他们在解决方法中提到的参数运行该命令。

    C:\source_code\apache-ant-1.8.3>ant -f fetch.xml -Ddest=system -Djava.net.preferIPv4Stack=true
    

  • 共3个答案

    匿名用户

    从 Windows 命令提示符(以管理员身份运行)运行此命令,作为禁用有状态 FTP 筛选的解决方法,以便 Windows 防火墙不会阻止 FTP 流量。

    netsh advfirewall set global StatefulFtp disable
    

    匿名用户

    MacGyver的解决方案在我工作的电脑上不起作用。所以我尝试了别的方法:

    我能够使用Firefox将NetRexx.zip从 ftp://ftp.software.ibm.com/software/awdtools/netrexx/ 下载到%HOME%/.ant/tempcache/。

    然后我将lib/commons-net.jar重命名为lib/__commons-net.jar__,以便将属性“have.commons.net”设置为false。因此,目标 -fetch-netrexx 会跳过,因为该属性为 false,而 -fetch-netrexx-no-commons-net 会跳过,因为文件已经存在。

    我跑了

    ant -f fetch.xml -Ddest=system netrexx
    

    这是通过的最后一步,所以我的安装完成了。

    唯一剩下要做的就是重命名回Commons-net. jar

    匿名用户

    在我的例子中,以管理员身份运行cmd,然后执行

    ant -f fetch.xml -Ddest=system
    

    如文档中所述-在没有修改防火墙设置或手动下载依赖项的情况下完成了工作!