Как заставить Java использовать IPv4 вместо IPv6?


39

Мой плагин для браузера Java больше не работает. Когда я открываю страницу с элементом Java, Java не может подключиться к серверу.

После расследования я обнаружил, что Java пытается использовать IPv6, а моя сеть не поддерживает IPv6, поэтому Java всегда не может подключиться.

Я попытался поискать в Google и обнаружил, что должен запускать Java -Djava.net.preferIPv4Stack=true, но как я могу передать это в браузер?

Я использую Google Chrome и Java 7 обновление 5.


Почему бы вам не отключить протокол IPv6, чтобы у Java не было этой опции.
harrymc

Это старая история, я не знаю, отключил ли я протокол IPv6, кажется, я забыл, что я помню, я
удаляю

1
Отключить легко: посмотрите это .
Harrymc

@harrymc всегда копирует контент: эта ссылка мертва.
Джавадба

@javadba: ссылки никогда не бывают мертвыми: посмотрите Wayback Machine , но она устарела. Лучше гугл "Отключить IPv6 в Windows" для полумиллиона результатов.
harrymc

Ответы:


66

Поместите параметры в _JAVA_OPTIONSпеременную окружения. Как это сделать, уже описано в различных других постах - хотя они обычно говорят о настройке PATH, но это все то же самое.

Например, в Linux введите следующее в ваш ~/.profileили ~/.bash_profile:

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

1
Хорошо, спасибо за ваш ответ, хотя я использую Windows, но ваше решение вдохновляет меня, спасибо
nyongrand

1
См., Например, этот пост для установки переменных среды: superuser.com/questions/284342/…
user2428118

1
Почему Java «предпочитает» IPV6? Кажется, нарушить работающий код.
Рибо

Как установить это в Windows?
Аднан Али

1
@Ribo: по умолчанию в Java по возможности используется IPv6 с двумя стеками, то есть используются сокеты IPv6, которые также поддерживают адреса IPv4. Эти сокеты по-прежнему совместимы с приложениями IPv4 благодаря использованию адресов, сопоставленных с IPv4. Следовательно, это поведение обратно совместимо.
Доктор Кутейр Аттуши
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.