2013-07-15 6 views
5

Ich habe schon seit geraumer Zeit Java auf Windows 7 (64bit) Maschinen benutzt und hatte nie Probleme damit, keine Netzwerkverbindung zu erstellen. Jetzt auf den Systemen in der Firma, für die ich arbeite, muss ich "-Djava.net.preferIPv4Stack = true" setzen oder es scheint, dass die Java-Prozesse keine einzige Verbindung erstellen können.Warum brauche ich java.net.preferIPv4Stack = true nur auf einigen Windows 7 Systemen?

Der Nachteil ist, dass, wenn ich nicht "_JAVA_OPTIONS" festlegen würde ich Tonnen von Diensten konfigurieren müssen, um diese Einstellung zu verwenden. Aber wenn ich es benutze, gibt Java dieses alberne "Picked up: _JAVA_OPTIONS ..." an stderr aus (frage mich, welcher Typ diese dumme Entscheidung getroffen hat). Dies führt jedoch dazu, dass meine GWT-Kompilierungen in IntelliJ fehlschlagen.

Was ich gerne wissen würde ... das ist das erste Mal, dass ich diese Probleme habe und ich denke, sie müssen irgendwie mit dem Setup des Betriebssystems verbunden sein. Was wahrscheinlich diese Probleme verursacht (Wie ich bereits erwähnt habe ... Ich habe etwa 4 andere Systeme mit Windows 7 und 64 Bit Java VMS, die diese Probleme nicht haben).

Chris

+0

Versuchen Sie IPv6 auf allen Netzwerkschnittstellen deaktivieren und sehen, was passiert. –

+0

Das Problem ist, dass es unmöglich zu sein scheint, dies für die Loopback-Devive zu deaktivieren ... und selbst nach Deaktivierung von IPv6 für alle Geräte, die ich deaktivieren könnte, bleibt das System hängen ... bis ich einen "Connection Reset" nach 1 bekomme -2 Minuten. –

+0

Bitten Sie Ihre IT-Abteilung, die IPv6-Fehlkonfiguration zu beheben. Wenn IPv6 auf einem Computer/Netzwerk aktiviert ist, muss es richtig konfiguriert werden, sonst werden unangenehme Probleme auftreten. – mschenk74

Antwort

4

Ok, also haben wir den Grund herausgefunden.

Dieses Problem scheint auf Systemen mit einer speziellen Version der Fernzugriffssoftware, die von unserer Firma verwendet wurde, aufgetreten zu sein. Dies scheint einige modifizierte DLLs in den Windows-Netzwerkstapel eingefügt zu haben (Uns wurde gesagt, dass Netzwerkkonnektivität automatisch erkannt wird). Es scheint, dass diese DLL einige Probleme hatte, wodurch der gesamte IPv6-Verkehr blockiert wurde. Es verursachte auch, dass die betroffenen Maschinen regelmäßige Bluescreens hatten. Die Deinstallation dieser Software hat das System Bluescreen frei und ich brauche die preferIPv4Stack Einstellung nicht mehr.

2

Dies ist nur eine Theorie ...

Nach der Java-Dokumentation, wenn IPv6 auf dem Betriebssystem zur Verfügung steht, wird die zugrunde liegenden nativen Socket-IPv6-Sockets sein.

Wenn das Betriebssystem nicht über IPv6 verfügt oder IPv6 ordnungsgemäß konfiguriert ist, möchten Sie das. Aber wenn das Betriebssystem IPv6 hat, das nicht richtig funktioniert, dann stelle ich mir vor, dass Java versuchen wird, IPv6 zu verwenden, um Verbindungen herzustellen und fehlzuschlagen.


Allerdings, wenn ich es Java gibt diese dumme "Abgeholt: _JAVA_OPTIONS ...", um stderr.

Nach diesem Q & A, gibt es keine Möglichkeit, sie deaktivieren: Suppressing the "Picked up _JAVA_OPTIONS" message

Ich würde vorschlagen, von _JAVA_OPTIONS global (wenn es sein muss) und dann unsetting es für die Umwelt Sie starten Ihre IDE Einstellung .

+0

Das Einstellen von _JAVA_OPTIONS global und das Unscharfschalten beim Starten von IntelliJ ist genau das, was ich gerade mache. Leider muss ich das dumme perferIPv4Stack-Zeug überall hinzufügen, kann aber nicht für die DB-Integration, also wenn ich das aktualisieren möchte, muss ich IntelliJ starten, ohne die Variable zu deaktivieren. Nachdem das Update fertig ist, schalte ich IntelliJ herunter und starte es mit der nicht gesetzten Eigenschaft. Aber ich muss das nur an den Maschinen bei der Arbeit machen und musste das nie woanders machen, deshalb bin ich neugierig auf das, was der Grund sein könnte. –

+0

@chrisdutz - Fragen Sie Ihr lokales System/Netzwerkadministratoren bei der Arbeit, warum IPv6 aktiviert ist, aber nicht funktioniert. –

+0

Gibt es eine Möglichkeit, das IPv6-Setup zu testen? Irgendein Werkzeug, das ich verwenden könnte, um zu bestätigen, dass das Setup falsch ist? Und es erklärt nicht, warum ich es nicht zuerst auf meinem Laptop brauchte, aber nachdem die IT-Unterstützung ein "gelöstes" Problem bei der Installation eines neuen BS-Images hatte, habe ich diese Probleme (zusammen mit Tonnen von BSODs) –

0

Nur mein Beitrag:

Deaktivieren alle ipv6 auf den Netzwerkgeräten gelöst es für mich.

Ich hoffe, das hilft

Verwandte Themen