通過System.getProperty配置JVM系統(tǒng)屬性
很多時(shí)候我們需要在項(xiàng)目中讀取外部屬性文件,用到了System.getProperty("")方法。這個(gè)方法需要配置JVM系統(tǒng)屬性,那么如何配置呢?
那就是使用java -D 配置系統(tǒng)屬性。
使用格式是:java -Dkey=value
比如新建一個(gè)測試類,如下:
public class Test {
public static void main(String[] args){
System.out.println(System.getProperty("configurePath"));
}
}
這段代碼直接執(zhí)行的話,會(huì)輸出null
接下來需要配置configurePath屬性了,有兩種方法。
第一種方法是在啟動(dòng)tomcat的時(shí)候配置:
比如在myeclipse中,選中這個(gè)項(xiàng)目,然后在工具欄中選擇"Run-->Run Confgurations“,然后在對(duì)話框的右邊選擇"Arguments,然后在VM arguments中輸入-DconfigurePath=hello。如下圖:

然后就會(huì)在控制臺(tái)輸出:hello
第二種方法是在執(zhí)行java命令的時(shí)候配置:
將之前的測試類導(dǎo)出為一個(gè)jar包,再控制臺(tái)使用命令執(zhí)行:java -DconfigurePath=hello -jar Test.jar
也會(huì)得到hello

java -D 配置系統(tǒng)屬性
使用案例
其實(shí),在不知不覺中我們已經(jīng)在使用-D的參數(shù)項(xiàng),比如用下面參數(shù)來配置文件編碼:
-Dfile.encoding=UTF-8
再比如,用以下參數(shù)來配置dubbo的選項(xiàng):
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
官網(wǎng)解釋:
Set a system property value. If value is
a string that contains spaces, you must enclose the string in double quotes:
在虛擬機(jī)的系統(tǒng)屬性中設(shè)置屬性名/值對(duì),運(yùn)行在此虛擬機(jī)上的應(yīng)用程序可用:
System.getProperty("屬性名")得到value的值。
如果value中有空格,則需要用雙引號(hào)將該值括起來,如:-Dname=”kazaf f”。
該參數(shù)通常用于設(shè)置系統(tǒng)級(jí)全局變量值,如配置文件路徑,保證該屬性在程序中任何地方都可訪問。
注意事項(xiàng)
(1)需要設(shè)置的是JVM參數(shù)而不是program參數(shù);
(2)使用此參數(shù)的參數(shù)優(yōu)先級(jí)最高,會(huì)覆蓋項(xiàng)目中配置的此項(xiàng);
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis入門_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了mybatis入門的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
java讀取JSON文件的多種實(shí)現(xiàn)方式
這篇文章主要介紹了java讀取JSON文件的多種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Java中PageHelper分頁后對(duì)list操作導(dǎo)致分頁無效
在項(xiàng)目中使用分頁插件的時(shí)候發(fā)現(xiàn)PageHelper插件失效了,本文就來介紹一下Java中PageHelper分頁后對(duì)list操作導(dǎo)致分頁無效的解決方法,感興趣的可以了解一下2021-05-05
Java語言基于無向有權(quán)圖實(shí)現(xiàn)克魯斯卡爾算法代碼示例
這篇文章主要介紹了Java語言基于無向有權(quán)圖實(shí)現(xiàn)克魯斯卡爾算法代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
IntelliJ IDEAx導(dǎo)出安卓(Android)apk文件圖文教程
這篇文章主要為大家詳細(xì)介紹了IntelliJ IDEAx導(dǎo)出安卓(Android)apk文件圖文教程,文中步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
使用Java實(shí)現(xiàn)Excel導(dǎo)入并進(jìn)行數(shù)據(jù)校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了Java如何根據(jù)下載的指定數(shù)據(jù)模板寫入數(shù)據(jù)和導(dǎo)入并進(jìn)行數(shù)據(jù)校驗(yàn),文中的示例代碼講解詳細(xì),需要的可以了解下2025-03-03
java foreach循環(huán)為什么不能賦值的講解
這篇文章主要介紹了java foreach循環(huán)為什么不能賦值的講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09

