Comment forcer Java à utiliser IPv4 à la place d'IPv6?

39

Le plug-in de mon navigateur Java ne fonctionne plus. Lorsque j'ouvre une page comportant un élément Java, Java ne peut pas se connecter au serveur.

Après enquête, j'ai découvert que Java essayait d'utiliser IPv6, alors que mon réseau ne prend pas en charge IPv6. Par conséquent, Java ne parvient toujours pas à se connecter.

J'ai essayé de chercher sur Google et j'ai trouvé que je devais utiliser Java -Djava.net.preferIPv4Stack=true, mais comment puis-je le transmettre au navigateur?

J'utilise Google Chrome et Java 7 Update 5.

Nyongrand
la source
Pourquoi ne désactivez-vous pas le protocole IPv6 afin que Java ne dispose pas de cette option?
harrymc
c'est une vieille histoire, je ne sais pas si j'ai désactivé le protocole IPv6, semble avoir, j'ai oublié, ce dont je me souviens, c'est que je retire Java 7 et le remplace par Java 6
Nyongrand
1
Désactiver est facile: voyez ceci .
harrymc
@harrymc copie toujours le contenu: ce lien est mort.
javadba
@javadba: Les liens ne sont jamais morts: consultez la Wayback Machine , mais elle est obsolète. Mieux google "Désactiver IPv6 sur Windows" pour un demi-million de résultats.
harrymc

Réponses:

66

Mettez les options dans _JAVA_OPTIONSla variable d'environnement. Comment faire cela est déjà décrit dans divers autres articles - bien qu'ils parlent habituellement de réglage PATH, mais c'est tout pareil.

Par exemple, sous Linux, inscrivez ce qui suit dans votre ~/.profileou ~/.bash_profile:

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
Grawity
la source
1
ok, merci pour votre réponse, bien que j'utilise Windows mais votre solution m'inspire, merci
Nyongrand
1
Voir par exemple cet article pour définir les variables d'environnement: superuser.com/questions/284342/…
user2428118
1
Pourquoi Java "préfère-t-il" IPV6? Il semble casser le code qui fonctionnait.
Ribo
Comment le configurer sous Windows?
Adnan Ali
1
@Ribo: Par défaut, Java utilise IPv6 en double pile lorsque c'est possible, c'est-à-dire qu'il utilise des sockets IPv6 qui prennent également en charge les adresses IPv4. Ces sockets sont toujours compatibles avec les applications IPv4 en utilisant des adresses mappées IPv4. Par conséquent, il s'agit d'un comportement rétrocompatible.
Dr. Koutheir Attouchi