在 pom.xml 中传递 VM 参数
Passing VM parameter in pom.xml
我的程序只适用于 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。
我的程序只适用于 ip4,使用 ip6 时出错,所以我需要 运行 jar
-Djava.net.preferIPv4Stack=true
有没有办法将此行写入 pom.xml 并且每当有人打开应用程序将尝试连接 IPv4 的 jar 时?
不,在构建时无法做到这一点。当java -jar artifact.jar
为运行.
您的替代方法是自己在代码中执行此操作(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。