Java讀取自定義環境變量的方法System.getProperty和System.getenv


引自:https://blog.csdn.net/zhen8023wan/article/details/38460389

問題的由來,想在測試機環境下搞測試,然后不想修改搞到線上環境的時候,自動把本地測試的代碼去掉,第一反應的是使用ip判斷,但是某些時候也許沒有request參數,那么我們變通一下,只需要在測試環境上搞一個自定義的環境變量,然后用來作為判斷條件即可。
假設設置了環境變量MYNAME, 值為”this is my name”, 運行如下代碼:

System.out.println("using getenv: "+ System.getenv("MYNAME"));
System.out.println("using getProperty: "+ System.getProperty("MYNAME"));

結果分別為:
using getenv: this is my name
using getProperty: null

另試了如下代碼:

java.util.Properties p = System.getProperties();
java.util.Enumeration keys = p.keys();
while( keys.hasMoreElements() )
{
     System.out.println( keys.nextElement());
 }

結果根本沒有MYNAME 這個變量!
那么怎么解決呢,需要明白這一點 System.getProperty(“MYNAME”) 只有當你運行 java -DMYNAME=JACK MyClass,這樣好辦了,我們只需修改服務容器比如resin的啟動腳本 加上一個 -D自定義參數 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM