在 pom 中传递 VM 参数.xml



我的程序仅适用于 ip4 并使用 ip6 出现错误,所以我需要用

-Djava.net.preferIPv4Stack=true

有没有办法将这一行写到 pom 中.xml每当有人打开 jar 时,应用程序都会尝试连接 IPv4?

不,在构建时没有办法做到这一点。运行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>

此链接中的更多详细信息。

最新更新