您好,登錄后才能下訂單哦!
通過System.getProperty如何配置JVM系統屬性?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
使用java -D 配置系統屬性。
使用格式是:java -Dkey=value
比如新建一個測試類,如下:
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
也會得到hello
java -D 配置系統屬性
使用案例
其實,在不知不覺中我們已經在使用-D的參數項,比如用下面參數來配置文件編碼:
-Dfile.encoding=UTF-8
再比如,用以下參數來配置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)使用此參數的參數優先級最高,會覆蓋項目中配置的此項;
看完上述內容,你們掌握通過System.getProperty如何配置JVM系統屬性的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。