为所有Java进程设置Java systemProperties

时间:2019-03-19 16:53:26

标签: java default-value system-properties

我有一个系统属性(提供JVM),名为 networkaddress.cache.ttl。此设置的默认值为-1,应设置为其他值(例如:60)。

我知道可以通过致电java -Dnetworkaddress.cache.ttl=60 -jar main.jar

进行设置

有没有办法将此值设置为系统范围的默认值,以便任何运行java -jar main.jar的进程都可以将其取走?

1 个答案:

答案 0 :(得分:1)

检查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>

如果他们选择了您的设置。

编辑:alex

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