我的程序仅适用于 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>
此链接中的更多详细信息。