Apache Ant安装错误的解决方法

时间:2012-05-06 19:26:40

标签: java windows ant

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

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

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

(1)使用-Djava.net.preferIPv4Stack = true运行 - 为Java二进制文件添加防火墙例外。

(2)使用-Djava.net.preferIPv4Stack = true运行(禁用IPv6并使用   AF_INET独家插座)

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

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

设定:

安装Apache Ant:

  • http://ant.apache.org/

  • 下载二进制文件
  • 导航到此路径以获取安装说明:手动>安装Apache Ant>获取Ant> ..关注说明

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

  • Windows 7>控制面板>系统>单击“环境变量”按钮>

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

  • 在“系统变量”部分下,点击“添加”>变量名称:JAVA_HOME变量值:C:\ Program Files \ Java \ jdk1.7.0_02

  • 在“系统变量”部分下,点击“添加”>变量名称:ANT_HOME变量值:C:\ source_code \ apache-ant-1.8.3

  • 在“系统变量”部分下,单击“路径”环境变量,单击“编辑”>变量名称:路径变量值:{编辑前的值};%JAVA_HOME%\ bin;%ANT_HOME%\ bin;

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

  • 确保Windows看到Apache Ant:

    C:\ source_code \ apache-ant-1.8.3> ant -version 2012年2月26日编译的Apache Ant(TM)版本1.8.3

  • 导航至http://ant.apache.org/>手册>安装Apache Ant>安装Ant>

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

FTP Bug:

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 个答案:

答案 0 :(得分:13)

从Windows命令提示符(以管理员身份运行)中将其作为解决方法来禁用状态FTP过滤,以便Windows防火墙不会阻止FTP流量。

netsh advfirewall set global StatefulFtp disable

答案 1 :(得分:0)

MacGyver的解决方案无法在我的计算机上工作。 所以我尝试了别的东西:

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

然后我将lib/commons-net.jar重命名为lib/__commons-net.jar__,以便设置属性" have.commons.net"为假。 所以目标-fetch-netrexx跳过因为属性为false,并且-fetch-netrexx-no-commons-net跳过,因为文件已经存在。

我跑了

ant -f fetch.xml -Ddest=system netrexx

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

唯一要做的就是重命回commons-net.jar

答案 2 :(得分:0)

在我的情况下,以管理员身份 cmd ,然后执行

ant -f fetch.xml -Ddest=system

如文档中所述 - 作业没有修改防火墙设置或手动下载依赖项!