6

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
Kara
  • 6,115
  • 16
  • 50
  • 57
JustBeingHelpful
  • 18,332
  • 38
  • 160
  • 245

3 Answers3

13

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
JustBeingHelpful
  • 18,332
  • 38
  • 160
  • 245
  • It was working for me even with this enabled, but after 1 hour for unknown reason its not workign now – Alexander Kim Mar 22 '14 at 18:24
  • @Heihachi - You probably re-opened the Windows command prompt window by accident before you ran the Ant script again. It sometimes caches things, and in order for something to take effect, it needs to launch again. – JustBeingHelpful Oct 08 '14 at 18:49
0

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

Fabien
  • 6,700
  • 7
  • 35
  • 35
0

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!

rrhrg
  • 1,150
  • 1
  • 13
  • 15