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配置在類名之前。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章