使用System.getProperty方法,如何配置JVM系統屬性

原創文章,歡迎轉載,轉載請註明出處!java


不少時候咱們須要在項目中讀取外部屬性文件,用到了System.getProperty("")方法。這個方法須要配置JVM系統屬性,那麼如何配置呢?tomcat

那就是使用java -D 配置系統屬性
使用格式是:java -Dkey=value網絡

好比新建一個測試類,以下:eclipse

public class Test { public static void main(String[] args){ System.out.println(System.getProperty("configurePath")); } }

這段代碼直接執行的話,會輸出null工具

接下來須要配置configurePath屬性了,有兩種方法。
第一種方法是在啓動tomcat的時候配置
好比在myeclipse中,選中這個項目,而後在工具欄中選擇"Run-->Run Confgurations「,而後在對話框的右邊選擇"Arguments,而後在VM arguments中輸入-DconfigurePath=hello。以下圖:測試

而後就會在控制檯輸出:hello編碼

第二種方法是在執行java命令的時候配置
將以前的測試類導出爲一個jar包,再控制檯使用命令執行:java -DconfigurePath=hello -jar Test.jar
也會獲得hellospa

 

 


如下轉載自網絡:code

java -D 配置系統屬性
使用案例
其實,在不知不覺中咱們已經在使用-D的參數項,好比用下面參數來配置文件編碼:
-Dfile.encoding=UTF-8blog

再好比,用如下參數來配置dubbo的選項:
java -Ddubbo.reference.com.foo.BarService.check=false
java -Ddubbo.reference.check=false
java -Ddubbo.consumer.check=false
java -Ddubbo.registry.check=false


功能解析
-D=value
官網解釋:
    Set a system property value. If value is
    a string that contains spaces, you must enclose the string in double quotes:
在虛擬機的系統屬性中設置屬性名/值對,運行在此虛擬機上的應用程序可用:
System.getProperty("屬性名")

獲得value的值。
若是value中有空格,則須要用雙引號將該值括起來,如:-Dname=」kazaf f」。
該參數一般用於設置系統級全局變量值,如配置文件路徑,保證該屬性在程序中任何地方均可訪問。


注意事項
(1)須要設置的是JVM參數而不是program參數;
(2)使用此參數的參數優先級最高,會覆蓋項目中配置的此項;

相關文章
相關標籤/搜索