溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

System.getenv()和System.getProperty()的區(qū)別是什么

發(fā)布時間:2021-06-21 10:38:06 來源:億速云 閱讀:301 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“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)境變量

在系統(tǒng)層面設(shè)置環(huán)境變量,之前我們應(yīng)該都操作過,以windows系統(tǒng)為例

System.getenv()和System.getProperty()的區(qū)別是什么

System.getenv()可以獲取的在這里設(shè)置的變量。

二、在java虛擬機層面設(shè)置環(huán)境變量

個人理解,System.getProperty()可以獲取在JVM 層面的變量,有些變量在JVM啟動后,就內(nèi)置了,如:

參數(shù)值參數(shù)含義
java.versionJava 運行時環(huán)境版本
java.vendorJava 運行時環(huán)境供應(yīng)商
java.vendor.urlJava 供應(yīng)商的 URL
java.homeJava 安裝目錄
java.vm.specification.versionJava 虛擬機規(guī)范版本
java.vm.specification.vendorJava 虛擬機規(guī)范供應(yīng)商
java.vm.specification.nameJava 虛擬機規(guī)范名稱
java.vm.versionJava 虛擬機實現(xiàn)版本
java.vm.vendorJava 虛擬機實現(xiàn)供應(yīng)商
java.vm.nameJava 虛擬機實現(xiàn)名稱
java.specification.versionJava 運行時環(huán)境規(guī)范版本
java.specification.vendorJava 運行時環(huán)境規(guī)范供應(yīng)商
java.specification.nameJava 運行時環(huán)境規(guī)范名稱
java.class.versionJava 類格式版本號
java.class.pathJava 類路徑
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添加,這樣在該程序運行時,就自動生效了。

如下圖:

System.getenv()和System.getProperty()的區(qū)別是什么

System.getenv()和System.getProperty()的區(qū)別是什么

System.getenv(String name)方法的意義和用法

最近工程里用到

String path = System.getenv(“config_path”);

這樣取路徑的方法。記錄一下。

1.在windows中config_path指的是系統(tǒng)的環(huán)境變量。如:

System.getenv()和System.getProperty()的區(qū)別是什么

此時取出來的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è)資訊頻道!

向AI問一下細節(jié)

免責(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)容。

AI