How can I disable IPv6 stack use for IPv4 IPs on JRE?
As you can see on below screenshots, eclipse and Android SDK Manager (and other Java programs) are trying to connect to a IPv4 Internet IP via IPv6 TCP/IP stack while Proxifier (a proxy manager program, nevermind) can not support that.
How I can disable IPv6 in Java?
Solution 1:
I wanted to use this for some program I hadn't control for running that Java app so ended with this _JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true
environment variable. (read about _JAVA_OPTIONS here)
If you are using Windows, just run this command on Windows cmd:setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true
Thanks to Jason Nichols for reminding this JVM argument :)
Solution 2:
Did you try (from the command line)
-Djava.net.preferIPv4Stack=true
or (from your code)
System.setProperty("java.net.preferIPv4Stack" , "true");
Solution 3:
Maybe a bit late but for me neither solution worked. So I included this option as it is stated here:
-Djava.net.preferIPv4Addresses=true
But also the followingI added line to the end of the file /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
And
sudo sysctl -p
as it is explained here. In order to check that ipv6 is disabled just execute:
ip a | grep inet