【发布时间】:2018-10-19 07:24:24
【问题描述】:
我的程序仅适用于 ip4 并在 ip6 上出现错误,因此我需要使用
运行 jar-Djava.net.preferIPv4Stack=true
有没有办法将此行写入 pom.xml 并且每当有人打开应用程序将尝试连接 IPv4 的 jar 时?
【问题讨论】:
我的程序仅适用于 ip4 并在 ip6 上出现错误,因此我需要使用
运行 jar-Djava.net.preferIPv4Stack=true
有没有办法将此行写入 pom.xml 并且每当有人打开应用程序将尝试连接 IPv4 的 jar 时?
【问题讨论】:
不,在构建时无法做到这一点。参数在java -jar artifact.jar运行时传递给JVM。
您的替代方法是自己在代码中执行此操作(main 方法可能是您可以尽早更改此属性的地方):
public static void main(String... args) {
System.setProperty("java.net.preferIPv4Stack", "true");
}
【讨论】:
你可以使用maven-surefire-plugin:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<systemPropertyVariables>
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
更多详情请看link。
【讨论】: