天天看點

Java 擷取環境變量及系統屬性

Java 擷取環境變量及系統屬性

當程式中需要使用與作業系統相關的變量(例如:檔案分隔符、換行符)時,Java提供了 System 類的靜态方法 getenv() 和 getProperty() 用于傳回系統相關的變量與屬性,getenv() 方法傳回的變量大多于系統相關,getProperty() 方法傳回的變量大多與 java 程式有關。

系統屬性和環境變量都是名稱與值之間的映射。兩種機制都能用來将使用者定義的資訊傳遞給 Java 程序。環境變量産生更多的全局效應,因為它們不僅對Java子程序可見,而且對于定義它們的程序的所有子程序都是可見的。

在不同的作業系統上,它們的語義有細微的差别,比如,是否區分大小寫,是以環境變量更可能有意料不到的副作用,程式中盡可能使用系統屬性。環境變量應該在需要全局效應的時候使用,或者在外部系統接口要求使用環境變量時使用(比如 PATH)。

1 環境變量 getenv()

用于擷取目前系統環境的字元串映射視圖,測試代碼如下:

publicclass Test {
    publicstaticvoid main(String[] args) {
        Map<String, String> map = System.getenv();
        for(Iterator<String> itr = map.keySet().iterator();itr.hasNext();){
            String key = itr.next();
            System.out.println(key + "=" + map.get(key));
        }   
    }
} 
           
USERPROFILE        :使用者目錄
USERDNSDOMAIN      :使用者域
PATHEXT            :可執行字尾
JAVA_HOME          :Java安裝目錄
TEMP               :使用者臨時檔案目錄
SystemDrive        :系統盤符
ProgramFiles       :預設程式目錄
USERDOMAIN         :帳戶的域的名稱
ALLUSERSPROFILE    :使用者公共目錄
SESSIONNAME        :Session名稱
TMP                :臨時目錄
Path               :path環境變量
CLASSPATH          :classpath環境變量
PROCESSOR_ARCHITECTURE :處理器體系結構
OS                     :作業系統類型
PROCESSOR_LEVEL    :處理級别
COMPUTERNAME       :計算機名
Windir             :系統安裝目錄
SystemRoot         :系統啟動目錄
USERNAME           :使用者名
ComSpec            :指令行解釋器可執行程式的準确路徑
APPDATA            :應用程式資料目錄
           

2 系統屬性 getProperty ()

目前的系統屬性,測試代碼如下:

System.getProperties()  得到所有的系統屬性
System.getProperty(key)  得到某個系統屬性的值
           
Properties properties = System.getProperties(); 
Iterator it = properties.entrySet().iterator(); 
while(it.hasNext()) { 
  Entry entry = (Entry)it.next(); 
  System.out.print(entry.getKey()+"="); 
  System.out.println(entry.getValue()); 
} 
           
java.version Java :運作時環境版本
java.vendor Java :運作時環境供應商
java.vendor.url :Java供應商的 URL
java.home &nbsp;&nbsp;:Java安裝目錄
java.vm.specification.version: Java虛拟機規範版本
java.vm.specification.vendor :Java虛拟機規範供應商
java.vm.specification.name &nbsp; :Java虛拟機規範名稱
java.vm.version :Java虛拟機實作版本
java.vm.vendor :Java虛拟機實作供應商
java.vm.name&nbsp; :Java虛拟機實作名稱
java.specification.version:Java運作時環境規範版本
java.specification.vendor:Java運作時環境規範供應商
java.specification.name :Java運作時環境規範名稱
java.class.version :Java類格式版本号
java.class.path :Java類路徑
java.library.path  :加載庫時搜尋的路徑清單
java.io.tmpdir  :預設的臨時檔案路徑
java.compiler  :要使用的 JIT編譯器的名稱
java.ext.dirs :一個或多個擴充目錄的路徑
os.name :作業系統的名稱
os.arch  :作業系統的架構
os.version  :作業系統的版本
file.separator :檔案分隔符
path.separator :路徑分隔符
line.separator :行分隔符
user.name :使用者的賬戶名稱
user.home :使用者的主目錄
user.dir:使用者的目前工作目錄
           

原文:

Java擷取系統屬性及環境變量