为所有 Java 个进程设置 Java systemProperties
Set Java systemProperties for all Java Processes
我有一个名为 属性(JVM 提供)的系统
networkaddress.cache.ttl
。此设置的默认值 -1
不正确,应设置为不同的值(例如:60)。
我知道可以通过调用java -Dnetworkaddress.cache.ttl=60 -jar main.jar
来设置
有没有办法将这个值设置为系统范围的默认值,这样任何进程 运行 java -jar main.jar
都会选择它?
检查JAVA_TOOL_OPTIONS
环境变量-https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html
您可以将其设置为向所有 Java 个进程添加 JVM 选项。
在你的情况下应该设置为
-Dnetworkaddress.cache.ttl=60
JVM进程一开始应该输出:
Picked up JAVA_TOOL_OPTIONS: <your value>
如果他们选择您的设置。
编辑:亚历克斯
public class Main {
public static void main(String[] args) {
System.out.println(System.getProperties().get("foobar"));
}
}
测试:
$ export JAVA_TOOL_OPTIONS='-Dfoobar=1'
$ java Main
Picked up JAVA_TOOL_OPTIONS: -Dfoobar=1
1
我有一个名为 属性(JVM 提供)的系统
networkaddress.cache.ttl
。此设置的默认值 -1
不正确,应设置为不同的值(例如:60)。
我知道可以通过调用java -Dnetworkaddress.cache.ttl=60 -jar main.jar
有没有办法将这个值设置为系统范围的默认值,这样任何进程 运行 java -jar main.jar
都会选择它?
检查JAVA_TOOL_OPTIONS
环境变量-https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html
您可以将其设置为向所有 Java 个进程添加 JVM 选项。
在你的情况下应该设置为
-Dnetworkaddress.cache.ttl=60
JVM进程一开始应该输出:
Picked up JAVA_TOOL_OPTIONS: <your value>
如果他们选择您的设置。
编辑:亚历克斯
public class Main {
public static void main(String[] args) {
System.out.println(System.getProperties().get("foobar"));
}
}
测试:
$ export JAVA_TOOL_OPTIONS='-Dfoobar=1'
$ java Main
Picked up JAVA_TOOL_OPTIONS: -Dfoobar=1
1