48

正如您在下面的屏幕截图中看到的那样,eclipse 和 Android SDK 管理器(以及其他 Java 程序)正在尝试通过 IPv6 TCP/IP 堆栈连接到 IPv4 Internet IP,而 Proxifier(代理管理器程序,没关系)无法支持。

Eclipse 连接到 Internet 失败Android SDK Manager 连接互联网失败

如何在 Java 中禁用 IPv6?

4

3 回答 3

95

我想将它用于一些我无法控制运行该 Java 应用程序的程序,因此以这个_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true环境变量结束。(在这里阅读 _JAVA_OPTIONS )

如果您使用的是 Windows,只需在 Windows cmd 上运行此命令:
setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true

感谢 Jason Nichols 提醒这个 JVM 参数 :)

于 2012-08-07T18:03:51.800 回答
43

你试过吗(从命令行)

-Djava.net.preferIPv4Stack=true

或(来自您的代码)

System.setProperty("java.net.preferIPv4Stack" , "true");
于 2012-08-07T17:01:43.437 回答
7

也许有点晚了,但对我来说,这两种解决方案都没有奏效。所以我包括了这个选项,因为它在这里说明:

-Djava.net.preferIPv4Addresses=true

而且以下我在文件 /etc/sysctl.conf 的末尾添加了一行

net.ipv6.conf.all.disable_ipv6 = 1

sudo sysctl -p

正如这里所解释的那样。为了检查 ipv6 是否被禁用,只需执行:

ip a | grep inet
于 2018-01-17T20:51:14.147 回答