Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Ant安装错误的解决方法_Java_Windows_Ant - Fatal编程技术网

Java Apache Ant安装错误的解决方法

Java Apache Ant安装错误的解决方法,java,windows,ant,Java,Windows,Ant,有人能帮我解释一下Windows中Apache Ant安装错误的解决方法吗 下面的代码片段描述了三种解决方法之一。如果你能成功地让其中一个工作,你能分享吗 (1) 使用-Djava.net.preferIPv4Stack=true运行 -为Java二进制文件添加防火墙例外 (2) 使用-Djava.net.preferIPv4Stack=true运行(它禁用IPv6并使用 AF_INET插座专用) (3) 或在防火墙中禁用有状态FTP检查(注册表设置或netsh命令) ============

有人能帮我解释一下Windows中Apache Ant安装错误的解决方法吗

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

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

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

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

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

设置:

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>
安装ApacheAnt:

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>
  • 下载二进制文件

  • 导航到此路径以获取安装说明:手动>安装Apache Ant>获取Ant>。按照说明进行操作

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

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

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

  • 在“系统变量”部分下,单击“添加”>变量名称:JAVA\u主变量值:C:\Program Files\JAVA\jdk1.7.0\u 02

  • 在“系统变量”部分下,单击“添加”>变量名称:ANT\u主变量值:C:\source\u code\apache-ANT-1.8.3

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

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

  • 确保Windows看到Apache Ant:

    C:\source\u code\apache-ant-1.8.3>ant-version ApacheAnt(TM)版本1.8.3于2012年2月26日编译

  • 导航到>手动>安装ApacheAnt>安装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

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

netsh advfirewall set global StatefulFtp disable

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

我可以使用firefox从%HOME%/.ant/tempcache/下载NetRexx.zip

然后我将
lib/commons-net.jar
重命名为
lib/_u-commons-net.jar _;
,以便将属性“have.commons.net”设置为false。 因此,target-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

如文档中所述-在未修改防火墙设置或手动下载依赖项的情况下执行作业

即使启用了此功能,它也能为我工作,但由于未知原因,1小时后它就不工作了now@Heihachi-在再次运行Ant脚本之前,您可能意外地重新打开了Windows命令提示符窗口。它有时会缓存东西,为了让某些东西生效,它需要再次启动。