1. 程式人生 > >System.getenv() 與System.getProperty()用法區別

System.getenv() 與System.getProperty()用法區別

一、[b]java System.getenv()[/b] 與[b]System.getProperty()[/b]用法區別

System.getenv()可以得到系統的所有環境變數
System.getenv(key)可得到系統的某個環境變數

Map map = System.getenv();
Iterator envIt = map.entrySet().iterator();
while(envIt.hasNext())
{
Entry entry = (Entry)envIt.next();
System.out.println(entry.getKey() + " = " + entry.getValue());
}

// 可獲取所有環境變數的路徑
String java_home = System.getenv("JAVA_HOME");
System.out.println("java_home = " + java_home);


而System.getProperty可以獲取系統變數
System.getProperties()獲取所有的系統變數
System.getProperty(key)獲取某個系統變數

Properties properties = System.getProperties();
Iterator proIt = properties.entrySet().iterator();
while(proIt.hasNext())
{
Entry entry = (Entry)proIt.next();
System.out.println(entry.getKey() + " = " + entry.getValue());
}


String separator =System.getProperty("file.separator");
System.out.println("file.separator= "+ separator);


二、[b]System[/b]原理

System是在lang包中的一個類,這個類中存在大量和系統打交道的實用方法
而且一般都是類方法,.getProperty(String key)就是其中一個比較常用的
方法,用於返回系統引數檔案中這個方法指定鍵所代表的值。由於java是一
種跨平臺語言,而不同的作業系統都不一樣,比如檔案分隔符,在window
下為“\”,而在unix下就成了"\\",這種情況下要想使程式跨平臺,就可以
使用這個方法把代表分隔符的那個鍵的值取到用到程式中。

這些變數通常與你的程式本身沒有關係,而是和你的機器的配置和作業系統等有關。