How can I disable IPv6 stack use for IPv4 IPs on JRE?

亡梦爱人 提交于 2019-12-17 08:33:27

问题


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?


回答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 :)




回答2:


Did you try (from the command line)

-Djava.net.preferIPv4Stack=true

or (from your code)

System.setProperty("java.net.preferIPv4Stack" , "true");



回答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


来源:https://stackoverflow.com/questions/11850655/how-can-i-disable-ipv6-stack-use-for-ipv4-ips-on-jre

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!