Workaround for Apache Ant Install Bug

2019-01-23 09:01发布

Can someone please help with instructions for a workaround on the Apache Ant installation bug in Windows?

The snippet below describes one of three workarounds. If you are able to successfully get one of these to work, can you please share?

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

(1) Run with -Djava.net.preferIPv4Stack=true - add a firewall exception for the Java binary.

(2) Run with -Djava.net.preferIPv4Stack=true (which disables IPv6 and uses AF_INET sockets exclusively)

(3) Or disable stateful FTP inspection in the firewall (registry setting or netsh command)

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

Setup:

Install Apache Ant:

  • download binary files at http://ant.apache.org/

  • navigate to this path for installation instructions: Manual > Installing Apache Ant > Getting Ant > ..follow instructions

  • move the extracted folder (containing the bin folder) inside of C:\source_code\apache-ant-1.8.3\ or directory used in %ANT_HOME% environment variable

  • Windows 7 > Control Panel > System > click "Environment Variables" button >

(remove the trailing "\" character on the environment variables)

  • under the "System Variables" section, click "Add" > Variable Name: JAVA_HOME Variable Value: C:\Program Files\Java\jdk1.7.0_02

  • under the "System Variables" section, click "Add" > Variable Name: ANT_HOME Variable Value: C:\source_code\apache-ant-1.8.3

  • under the "System Variables" section, click "Path" environment variable, click "Edit" > Variable Name: Path Variable Value: {value before editing};%JAVA_HOME%\bin;%ANT_HOME%\bin;

  • restart command prompt (Run As Administrator)

  • make sure Windows sees Apache Ant:

    C:\source_code\apache-ant-1.8.3>ant -version Apache Ant(TM) version 1.8.3 compiled on February 26 2012

  • navigate to http://ant.apache.org/ > Manual > Installing Apache Ant > Install 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>

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

I've tried making an inbound and outbound Windows Firewall rule to allow this program through.

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

I've also tried running the command with the parameter they mention in the workaround.

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

标签: java windows ant
3条回答
时光不老,我们不散
2楼-- · 2019-01-23 09:14

MacGyver's solution did not work for my computer at work. So I tried something else:

I was able to download NetRexx.zip from ftp://ftp.software.ibm.com/software/awdtools/netrexx/ to %HOME%/.ant/tempcache/ using firefox.

Then I renamed lib/commons-net.jar into lib/__commons-net.jar__, in order to set the property "have.commons.net" to false. So the target -fetch-netrexx skips because the property is false, and -fetch-netrexx-no-commons-net skips because the file is already there.

I ran

ant -f fetch.xml -Ddest=system netrexx

which was the last step to pass, so my install was complete.

The only remaining thing to do is to rename back commons-net.jar

查看更多
可以哭但决不认输i
3楼-- · 2019-01-23 09:16

In my case running cmd as administrator and then executing

ant -f fetch.xml -Ddest=system

as described in the documentation - did the Job without modifying the Firewall settings or downloading the dependency manually!

查看更多
啃猪蹄的小仙女
4楼-- · 2019-01-23 09:21

Ran this from the Windows command prompt (Run As Administrator) as a workaround to disable stateful FTP filtering so that Windows Firewall will not block FTP traffic.

netsh advfirewall set global StatefulFtp disable
查看更多
登录 后发表回答