为所有Java进程设置Java systemProperties

问题描述 投票:0回答:1

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

我知道这可以通过调用java -Dnetworkaddress.cache.ttl=60 -jar main.jar来设置

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

java default-value system-properties
1个回答
1
投票

检查JAVA_TOOL_OPTIONS环境变量 - https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html

您可以将其设置为将JVM选项添加到所有Java进程。

在你的情况下,它应该设置为

-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
© www.soinside.com 2019 - 2024. All rights reserved.