Jak zmusić Javę do używania IPv4 zamiast IPv6?

39

Moja wtyczka do przeglądarki Java nie działa. Kiedy otwieram stronę z elementem Java, Java nie może połączyć się z serwerem.

Po zakończeniu dochodzenia odkryłem, że Java próbuje używać IPv6, podczas gdy moja sieć nie obsługuje IPv6, więc Java zawsze nie może się połączyć.

Próbowałem spojrzeć na Google i stwierdziłem, że powinienem uruchomić Javę -Djava.net.preferIPv4Stack=true, ale jak mogę przekazać to do przeglądarki?

Używam Google Chrome i Java 7 aktualizacja 5.

nyongrand
źródło
Dlaczego nie wyłączysz protokołu IPv6, aby Java nie miała tej opcji.
harrymc
to stara historia, nie wiem, czy wyłączyłem protokół IPv6, wydaje mi się, że zapomniałem, pamiętam, że
usuwam
1
Wyłączenie jest łatwe: zobacz to .
harrymc
@harrymc zawsze kopiuje treść: ten link jest martwy.
javadba
@javadba: Linki nigdy nie są martwe: zobacz Wayback Machine , ale jest przestarzała. Lepsze google „Wyłącz IPv6 w systemie Windows”, aby uzyskać pół miliona wyników.
harrymc

Odpowiedzi:

66

Umieść opcje w _JAVA_OPTIONSzmiennej środowiskowej. Jak to zrobić, jest już opisane w różnych innych postach - chociaż zwykle mówią o ustawieniach PATH, ale wszystko jest takie samo.

Na przykład w systemie Linux umieść w swoim ~/.profilelub ~/.bash_profile:

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
grawitacja
źródło
1
ok, dziękuję za odpowiedź, chociaż korzystam z systemu Windows, ale twoje rozwiązanie mnie inspiruje, dzięki
nyongrand
1
Zobacz na przykład ten post, aby ustawić zmienne środowiskowe: superuser.com/questions/284342/…
user2428118,
1
Dlaczego Java „preferuje” IPV6? Wygląda na to, że psuje działający kod.
Ribo,
Jak to ustawić w systemie Windows?
Adnan Ali,
1
@Ribo: Domyślnie Java używa, gdy to możliwe, podwójnego stosu IPv6, tzn. Używa gniazd IPv6, które również obsługują adresy IPv4. Te gniazda są nadal kompatybilne z aplikacjami IPv4 przy użyciu adresów odwzorowanych na IPv4. Dlatego jest to zachowanie kompatybilne wstecz.
Dr Koutheir Attouchi