6

有人可以提供有关 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 > ..follow instructions

  • 将提取的文件夹(包含 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 Apache Ant(TM) 版本 1.8.3 编译于 2012 年 2 月 26 日

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

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

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
4

3 回答 3

13

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

netsh advfirewall set global StatefulFtp disable
于 2012-05-06T19:33:15.923 回答
0

MacGyver 的解决方案不适用于我在工作中的计算机。所以我尝试了别的东西:

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

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

我跑了

ant -f fetch.xml -Ddest=system netrexx

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

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

于 2013-01-16T16:41:23.717 回答
0

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

ant -f fetch.xml -Ddest=system

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

于 2016-07-13T12:28:42.977 回答