50

My Java browser plug-in is no longer working. When I open a page that has a Java element, Java cannot connect to the server.

After investigation, I found that Java was trying to use IPv6, while my network does not support IPv6, so Java always fails to connect.

I tried looking on Google and found that I should run Java with -Djava.net.preferIPv4Stack=true, but how can I pass this to the browser?

I use Google Chrome and Java 7 update 5.

6
  • Why don't you disable the IPv6 protocol so Java won't have this option.
    – harrymc
    Aug 30, 2013 at 18:55
  • it is a old story, I do not know if I've disable IPv6 protocol, seems to have, I've forgotten, what I remember is I remove Java 7 and replace it with Java 6
    – nyongrand
    Aug 31, 2013 at 9:21
  • 1
    Disabling is easy : see this.
    – harrymc
    Aug 31, 2013 at 9:25
  • @harrymc always copy content: that link is dead. Jan 16, 2017 at 3:12
  • 1
    @javadba: Links are never dead : see the Wayback Machine, but it's outdated. Better google "Disable IPv6 On Windows" for half a million results.
    – harrymc
    Jan 16, 2017 at 7:31

2 Answers 2

90

Put the options in _JAVA_OPTIONS environment variable. How to do this is already described in various other posts – although they usually talk about setting PATH, but it's all the same.

For example, on Linux, put the following in your ~/.profile or ~/.bash_profile:

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
6
  • 1
    ok, thanks for your reply, although i use windows but your solution inspire me, thanks
    – nyongrand
    Jul 25, 2012 at 19:28
  • 1
    See for example this post for setting environment variables: superuser.com/questions/284342/… Aug 30, 2013 at 18:12
  • 1
    Why does Java 'prefer' IPV6? It seems to break code that was working.
    – Ribo
    Apr 2, 2016 at 15:18
  • How to set it in Windows ?
    – Adnan Ali
    Jun 18, 2017 at 9:51
  • 1
    @Ribo: By default, Java uses dual-stack IPv6 when possible, that is, it uses IPv6 sockets that also support IPv4 addresses. These sockets are still compatible with IPv4 applications by using IPv4-mapped addresses. Therefore, this is a backward-compatible behavior. Aug 24, 2017 at 8:38
0

when launching from the command line, add parameter:

-Djava.net.preferIPv4Stack=true

ie:

java -jar -Djava.net.preferIPv4Stack=true some.jar

1
  • The environment variable mentioned in the other answer will also work, though, and is recommended over environments where the java cmd isn't directly accessible Sep 6, 2023 at 18:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .