2013-07-15 19 views
5

Używam Java na komputerach Windows 7 (64-bitowych) od dłuższego czasu i nigdy nie miałem problemów z niemożliwością utworzenia połączenia sieciowego. Teraz w systemach w firmie, w której pracuję, muszę ustawić "-Djava.net.preferIPv4Stack = true" lub wydaje się, że procesy java nie są w stanie utworzyć pojedynczego połączenia.Dlaczego potrzebuję java.net.preferIPv4Stack = true tylko w niektórych systemach Windows 7?

Wadą jest to, że jeśli nie ustawię "_JAVA_OPTIONS", będę musiał skonfigurować wiele usług, aby użyć tego ustawienia. Jeśli jednak go użyję, Java wypisze to głupie "Pobrane: _JAVA_OPTIONS ..." na stderr (Zastanawiasz się, który facet podjął tę głupią decyzję). To jednak powoduje, że kompilacja GWT kończy się niepowodzeniem w IntelliJ.

Co chciałbym wiedzieć ... to pierwszy raz, kiedy mam te problemy i myślę, że muszą one być w jakiś sposób związane z konfiguracją systemu operacyjnego. Co prawdopodobnie powoduje te problemy (jak już wspomniałem ... mam około 4 innych systemów z Windows 7 i 64-bitowymi java vms, które nie mają tych problemów).

Chris

+0

Spróbuj wyłączyć protokół IPv6 na wszystkich interfejsach sieciowych i zobaczyć, co się dzieje. –

+0

Problem polega na tym, że wyłączenie tego dla sprzężenia zwrotnego wydaje się niemożliwe ... i nawet po wyłączeniu IPv6 dla wszystkich urządzeń, które mogłem wyłączyć, system wciąż zawiesza się ... dopóki nie otrzymam "zerowania połączenia" po 1 -2 minuty. –

+0

poprosić dział IT o naprawienie błędnej konfiguracji protokołu IPv6. Jeśli protokół IPv6 jest włączony w urządzeniu/sieci, musi być poprawnie skonfigurowany, w przeciwnym razie wystąpią nieprzyjemne problemy. – mschenk74

Odpowiedz

4

Ok, więc dowiedzieliśmy się, dlaczego.

Ten problem zdawał się występować w systemach zawierających specjalną wersję oprogramowania do zdalnego dostępu, z którego korzystała nasza firma. Wydaje się, że wstawiono trochę zmodyfikowanych bibliotek dll do stosu sieci Windows (powiedziano nam, aby automatycznie wykryć łączność sieciową). Wydaje się, że ta biblioteka dll ma pewne problemy, powodując zablokowanie całego ruchu IPv6. Spowodowało to również, że uszkodzone komputery miały regularne niebieskie ekrany. Odinstalowanie tego oprogramowania spowodowało uwolnienie systemu Bluescreen i nie potrzebuję już ustawienia preferIPv4Stack.

2

To tylko teoria ...

Według dokumentacji Java, jeśli IPv6 jest dostępny w systemie operacyjnym, podstawowe gniazdo rodzimy będzie gniazdo IPv6.

Jeśli system operacyjny nie ma IPv6 lub poprawnie skonfigurował IPv6, to właśnie tego chcesz. Ale jeśli system operacyjny ma nieprawidłowo działający IPv6, to wyobrażam sobie, że Java spróbuje użyć protokołu IPv6 do nawiązywania połączeń i awarii.


Jednak gdybym go używać Java wyprowadza to głupie "Odebrał: _JAVA_OPTIONS ..." na stderr.

Zgodnie z tym Q & A, nie ma sposobu, aby go wyłączyć: Suppressing the "Picked up _JAVA_OPTIONS" message

Proponuję ustawienie _JAVA_OPTIONS globalnie (jeśli trzeba), a następnie wyłączające ją dla środowiska uruchomić swój IDE z .

+0

Ustawienie globalnie _JAVA_OPTIONS i rozbrojenie go podczas uruchamiania IntelliJ jest tym, co teraz robię. Niestety muszę dodać głupie rzeczy perferIPv4Stack wszędzie, ale nie mogę dla integracji DB, więc jeśli chcę to zaktualizować, muszę uruchomić IntelliJ bez wyłączania zmiennej. Po zakończeniu aktualizacji zamykam system IntelliJ i uruchamiam go z niezałataną właściwością. Ale muszę to robić tylko na maszynach w pracy i nigdy nie musiałem tego robić nigdzie indziej, dlatego jestem ciekaw, co może być przyczyną. –

+0

@chrisdutz - Spróbuj zapytać lokalnych administratorów systemu/sieci, dlaczego działa IPv6, ale nie działa. –

+0

Czy istnieje sposób na przetestowanie konfiguracji IPv6? Jakieś narzę dzie, które mogłem wykorzystać do nieprawidłowego ustawienia? I to nie wyjaśnia, dlaczego nie potrzebowałem go najpierw na swoim laptopie, ale po "rozwiązanym" rozwiązaniu problemu z pomocą techniczną miałem z zainstalowaniem nowego obrazu systemu operacyjnego Mam te problemy (razem z tonami BSOD) –

0

Tylko mój wkład:

Wyłączenie cały ipv6 na urządzeniach sieciowych rozwiązać go dla mnie.

Mam nadzieję, że to pomoże

Powiązane problemy