Java 7 запрещает передачу по FTP в Windows Vista и 7.
В FTP перед передачей файла необходимо отправить команду PORT или PASV.Как только одна из команд отправлена, брандмауэр Windows закрывает сокет, который ее отправил.Это происходит только в том случае, если брандмауэр включен и исключение для java.exe отсутствует.Я подозреваю, что эта проблема связана с Java 7 с использованием нового стека IP-адресов Vista.
У кого-нибудь есть идеи, как исправить или обойти эту проблему?Мы распространяем библиотеку 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 (14 ноября 2011 г.): Oracle проанализировала проблему и обнаружила, что она является ошибкой в брандмауэре Windows и / или в стеке IPv6.Им удалось воспроизвести проблему с собственным приложением C (т.е. не Java), так что это убедительное доказательство того, что ошибка не в Java.Они проинформировали Microsoft, поэтому мяч сейчас на их площадке.Более подробную информацию можно найти по адресу http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696
ПОСЛЕДУЮЩИЕ 2 (27 июля 2012 г.): (очень полезный) контакт в Oracle сообщил мне, что проблема сейчас обострилась по адресуMicrosoft.Мы надеемся увидеть некоторые результаты в ближайшее время.
FOLLOW-UP 3 (15 августа 2012 г.): Наш сотрудник Oracle сообщил нам, что Microsoft приняла ошибку и находится в процессе.приоритетов.
ПОСЛЕДУЮЩИЕ 4 (21 сентября 2012 г.): Microsoft выпустила исправление, которое в настоящее время тестируется Oracle.Нет информации о дате релиза.
ПОСЛЕДУЮЩИЙ 5 (11 октября 2012 г.): Успех наконец!Microsoft публично выпустила исправление .Они подразумевают, что это исправление будет включено в общее обновление программного обеспечения в будущем:
", если эта проблема не оказывает на вас серьезного влияния, мы рекомендуем дождаться следующего обновления программного обеспечения, содержащего этоИсправление. "