Java 7 は、Windows Vista および 7 での FTP 転送を防ぎます。
FTP では、ファイルを転送する前に PORT または PASV コマンドを送信する必要があります。コマンドの 1 つが送信されるとすぐに、Windows ファイアウォールはそれを送信したソケットを閉じます。これは、ファイアウォールが有効で、java.exe の例外がない場合にのみ発生します。この問題は、新しい Vista IP スタックを使用する Java 7 に関連していると思われます。
この問題を修正または回避する方法を知っている人はいますか? 私たちは Java FTP ライブラリを配布しているので、明らかに例外を自分で追加することはできません。
例外:
java.net.SocketException: Permission denied: recv failed
JRE バージョン情報:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
フォローアップ 1 (2011 年 11 月 14 日): Oracle は問題を分析し、Windows ファイアウォールおよび/または IPv6 スタックのバグであると思われることを発見しました。彼らはネイティブ C (つまり、非 Java) アプリで問題を再現することができたので、これはバグが Java にないことの強力な証拠です。彼らはマイクロソフトに通知したので、ボールは今彼らのコートにあります. 詳細については、http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696を参照してください。
フォローアップ 2 (2012 年 7 月 27 日): Oracle の (非常に役立つ) 担当者から、この問題は現在 Microsoft にエスカレートされているとのことでした。すぐに何らかの結果が得られることを期待しています。
フォローアップ 3 (2012 年 8 月 15 日): Oracle の担当者は、Microsoft がバグを受け入れ、優先順位付けを行っていることを伝えました。
フォローアップ 4 (2012 年 9 月 21 日): Microsoft は、現在 Oracle によってテストされているパッチを作成しました。発売日については何も言われていません。
フォローアップ 5 (2012 年 10 月 11 日): ついに成功!Microsoft は修正プログラムを公開しています。彼らは、修正が将来の一般的なソフトウェア アップデートに含まれることを暗示しています。
「この問題による深刻な影響を受けていない場合は、このホットフィックスを含む次のソフトウェア アップデートを待つことをお勧めします。」