gpt4 book ai didi

java - 在哪里设置 java.net.preferIPv6Addresses = true

转载 作者:搜寻专家 更新时间:2023-10-31 19:46:25 26 4
gpt4 key购买 nike

我已经搜索了很多启用 IPv6 的地方来拥有一台双栈机器 IPv6。我发现许多人已经回答设置 java.net.preferIPv6Addresses=true,默认设置为 false。

我想知道我到底应该在哪里进行这些更改,即在哪个文件中,或者我是否必须编写一些 Java 代码来将其放入。

最佳答案

设置需要进入 JVM 的系统属性......并且需要在 Java 类库的相关部分初始化之前就在那里。

做到这一点的“防弹”方法是将设置作为命令行参数传递给 JVM;例如

    java -Djava.net.preferIPv6Addresses=true ... com.example.MainClass <args>

您还可以编写您的应用程序以使用以下方式注入(inject)设置

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

但您需要确保注入(inject)足够快地发生1,这并非易事。

1 - “很快”意味着在 JVM 网络代码的静态初始化发生之前。这在复杂的应用程序中可能很难实现。注意 Network Properties文档指出:“有些只在 VM 启动时检查一次,因此最好设置使用 java 命令的 -D 选项......”。请注意,它并未声明只能以这种方式设置这些属性。


使用JAVA_OPTS 环境变量的建议仅适用于某些应用程序。 JAVA_OPTS 的处理将在 JVM 启动之前发生在应用程序的启动器或包装器脚本中。这同样适用于 _JAVA_OPTIONS ... 这是我以前从未见过的。

(如果您使用的应用程序有适当的文档,那么它的文档应该解释如何指定需要传递给 java.exe 启动器的选项。)

标准的java.exejavaw.exe 命令当然不要注意JAVA_OPTS环境变量。

关于java - 在哪里设置 java.net.preferIPv6Addresses = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com