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 :Java安裝目錄
java.vm.specification.version: Java虛拟機規範版本
java.vm.specification.vendor :Java虛拟機規範供應商
java.vm.specification.name :Java虛拟機規範名稱
java.vm.version :Java虛拟機實作版本
java.vm.vendor :Java虛拟機實作供應商
java.vm.name :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擷取系統屬性及環境變量