java -D参数设置系统属性无效

我们都知道如何在Java中获取系统属性

System.getProperty(ESClientConstance.HTTP_PROXY_HOST);

这样可以获取操作系统默认的一些属性值。
如果我们需要自定义一些系统属性,那么这样定义:

-Dhttp_proxy_host=192.19.19.19

但是要注意下面这种情况,会导致java -D失效,进而导致System.getProperty获取不到属性值。
比如我的这样一个以java -jar方式启动的脚本:

nohup java -agentlib:jdwp=transport=dt_socket,address=39502,server=y,suspend=n \
-jar /opt/spider-es-cli/es-client-1.0.0.jar \
-Dhttp_proxy_host=100.129.18.11 \
-Dhttp_proxy_port=3128 \
--spring.profiles.active=prod \
--server.port=9502 >/dev/null 2>&1 &

注意-D错误地配置在了-jar之后。
处理方式是将-D正确地配置在-jar之前即可。
同样地,对java 类名方式启动也一样,注意要将-D配置在类名之前。

你可能感兴趣的:(J2SE)