您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“System.getenv()和System.getProperty()的區(qū)別是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“System.getenv()和System.getProperty()的區(qū)別是什么”這篇文章吧。
最近遇到一個需求,服務(wù)器實例需要獲取當前的環(huán)境變量。經(jīng)過查資料,發(fā)現(xiàn)環(huán)境變量可以在兩個地方設(shè)置。
在系統(tǒng)層面設(shè)置環(huán)境變量,之前我們應(yīng)該都操作過,以windows系統(tǒng)為例
System.getenv()可以獲取的在這里設(shè)置的變量。
個人理解,System.getProperty()可以獲取在JVM 層面的變量,有些變量在JVM啟動后,就內(nèi)置了,如:
參數(shù)值 | 參數(shù)含義 |
java.version | Java 運行時環(huán)境版本 |
java.vendor | Java 運行時環(huán)境供應(yīng)商 |
java.vendor.url | Java 供應(yīng)商的 URL |
java.home | Java 安裝目錄 |
java.vm.specification.version | Java 虛擬機規(guī)范版本 |
java.vm.specification.vendor | Java 虛擬機規(guī)范供應(yīng)商 |
java.vm.specification.name | Java 虛擬機規(guī)范名稱 |
java.vm.version | Java 虛擬機實現(xiàn)版本 |
java.vm.vendor | Java 虛擬機實現(xiàn)供應(yīng)商 |
java.vm.name | Java 虛擬機實現(xiàn)名稱 |
java.specification.version | Java 運行時環(huán)境規(guī)范版本 |
java.specification.vendor | Java 運行時環(huán)境規(guī)范供應(yīng)商 |
java.specification.name | Java 運行時環(huán)境規(guī)范名稱 |
java.class.version | Java 類格式版本號 |
java.class.path | Java 類路徑 |
java.library.path | 加載庫時搜索的路徑列表 |
java.io.tmpdir | 默認的臨時文件路徑 |
java.compiler | 要使用的 JIT 編譯器的名稱 |
java.ext.dirs | 一個或多個擴展目錄的路徑 |
os.name | 操作系統(tǒng)的名稱 |
os.arch | 操作系統(tǒng)的架構(gòu) |
os.version | 操作系統(tǒng)的版本 |
file.separator | 文件分隔符(在 UNIX 系統(tǒng)中是“/” ) |
path.separator | 路徑分隔符(在 UNIX 系統(tǒng)中是“:” ) |
line.separator | 行分隔符(在 UNIX 系統(tǒng)中是“/n” ) |
user.name | 用戶的賬戶名稱 |
user.home | 用戶的主目錄 |
user.dir | 用戶的當前工作目錄 |
還可以在代碼層面,通過System.setProperty(key, value)把值設(shè)置進去。
或者web容器層面,在服務(wù)器容器啟動時,把變量加進去,最終會傳遞給JVM。
例如我們公司之前用的,通過System.getProperty("weblogic.Name")獲取服務(wù)的實例名稱。
個人理解就是weblogic起啟動服務(wù)是初始化到JVM中的。
或者可以直接在eclipse中的VM arguments添加,這樣在該程序運行時,就自動生效了。
如下圖:
最近工程里用到
String path = System.getenv(“config_path”);
這樣取路徑的方法。記錄一下。
1.在windows中config_path指的是系統(tǒng)的環(huán)境變量。如:
此時取出來的path為:D:\work。有了這個路徑就可以做一些讀取文件的操作了。
2.在linux中config_path指的是在/etc/profile文件末尾配置環(huán)境變量 export config_path=XXX/XXX。(XXX/XXX為文件地址,退出保存,并source /etc/profile生效)。
以上是“System.getenv()和System.getProperty()的區(qū)別是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。