6

Windows での Apache Ant のインストールに関するバグの回避策について、どなたか教えていただけないでしょうか?

以下のスニペットは、3 つの回避策のうちの 1 つを示しています。これらのいずれかを正常に機能させることができた場合は、共有していただけますか?

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 2012 年 2 月 26 日にコンパイルされた Apache Ant(TM) バージョン 1.8.3

  • 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 トラフィックをブロックしないように、ステートフル FTP フィルタリングを無効にする回避策として、Windows コマンド プロンプト (管理者として実行) からこれを実行します。

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

MacGyver のソリューションは、職場の私のコンピューターでは機能しませんでした。だから私は何か他のことを試しました:

firefox を使用して、NetRexx.zip をftp://ftp.software.ibm.com/software/awdtools/netrexx/から %HOME%/.ant/tempcache/にダウンロードできました。

次に、プロパティ「have.commons.net」を false に設定するために、名前を に変更lib/commons-net.jarしました。lib/__commons-net.jar__そのため、プロパティが 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 に答える