Java中系統屬性Properties介紹 System.getProperty()參數大全

在JDK文檔中System類中有這樣的方法getProperties()在此方法的詳細介紹中有下面的參數可供使用:

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 文件分隔符(在 UNIX 系統中是「/」)
path.separator 路徑分隔符(在 UNIX 系統中是「:」)
line.separator 行分隔符(在 UNIX 系統中是「/n」)
user.name 用戶的帳戶名稱
user.home 用戶的主目錄
user.dir 用戶的當前工做目錄

下面是針對這些參數進行的一個測試,代碼以下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import java.util.Set;
public class MyJavaMain {

	public static void main(String[] args) throws Exception {

		//經過StringBuilder來構建要輸出的內容
		StringBuilder sb = new StringBuilder();
		sb.append("Java 運行時環境版本:"+System.getProperty("java.version")+"\n");
		sb.append("Java 運行時環境供應商:"+System.getProperty("java.vendor")+"\n");
		sb.append("Java 供應商的URL:"+System.getProperty("java.vendor.url")+"\n");
		sb.append("Java 安裝目錄:"+System.getProperty("java.home")+"\n");
		sb.append("Java 虛擬機規範版本:"+System.getProperty("java.vm.specification.version")+"\n");
		sb.append("Java 類格式版本號:"+System.getProperty("java.class.version")+"\n");
		sb.append("Java類路徑:"+System.getProperty("java.class.path")+"\n");
		sb.append("加載庫時搜索的路徑列表:"+System.getProperty("java.library.path")+"\n");
		sb.append("默認的臨時文件路徑:"+System.getProperty("java.io.tmpdir")+"\n");
		sb.append("要使用的 JIT 編譯器的名稱:"+System.getProperty("java.compiler")+"\n");
		sb.append("一個或多個擴展目錄的路徑:"+System.getProperty("java.ext.dirs")+"\n");
		sb.append("操做系統的名稱:"+System.getProperty("os.name")+"\n");
		sb.append("操做系統的架構:"+System.getProperty("os.arch")+"\n");
		sb.append("操做系統的版本:"+System.getProperty("os.version")+"\n");
		sb.append("文件分隔符(在 UNIX 系統中是「/」):"+System.getProperty("file.separator")+"\n");
		sb.append("路徑分隔符(在 UNIX 系統中是「:」):"+System.getProperty("path.separator")+"\n");
		sb.append("行分隔符(在 UNIX 系統中是「/n」):"+System.getProperty("line.separator")+"\n");
		sb.append("用戶的帳戶名稱:"+System.getProperty("user.name")+"\n");
		sb.append("用戶的主目錄:"+System.getProperty("user.home")+"\n");
		sb.append("用戶的當前工做目錄:"+System.getProperty("user.dir")+"\n");
	
		//新建一個文件,若是該文件不存在則建立一個
		File file = new File("c:\\t.txt");
		if( !file.exists()){
			file.createNewFile();
		}
		OutputStream ous = new FileOutputStream(file);
	
		//獲取系統的屬性
		Properties ps = System.getProperties();
		//得到系統屬性中的鍵值
		Set<String> set = ps.stringPropertyNames();
		for(String name: set){
			sb.append(name + " : " +ps.getProperty(name) + "\n");
			System.out.println(name + " : " +ps.getProperty(name) );
		}
		ous.write(sb.toString().getBytes());
		ous.close();

		System.out.println(System.getProperty("os.name"));
		System.out.println(System.getProperty("os.version"));
		System.out.println("Java運行時環境版本:"+System.getProperty("java.version"));
		System.out.println("Java 運行時環境供應商:"+System.getProperty("java.vendor"));
		System.out.println("Java 供應商的URL:"+System.getProperty("java.vendor.url"));
		System.out.println("Java 安裝目錄:"+System.getProperty("java.home"));
		System.out.println("Java 虛擬機規範版本:"+System.getProperty("java.vm.specification.version"));
		System.out.println("Java 類格式版本號:"+System.getProperty("java.class.version"));
		System.out.println("Java 類路徑:"+System.getProperty("java.class.path"));
		System.out.println("加載庫時搜索的路徑列表:"+System.getProperty("java.library.path"));
		System.out.println("默認的臨時文件路徑:"+System.getProperty("java.io.tmpdir"));
		System.out.println("要使用的 JIT 編譯器的名稱:"+System.getProperty("java.compiler"));
		System.out.println("一個或多個擴展目錄的路徑:"+System.getProperty("java.ext.dirs"));
		System.out.println("操做系統的名稱:"+System.getProperty("os.name"));
		System.out.println("操做系統的架構:"+System.getProperty("os.arch"));
		System.out.println("操做系統的版本:"+System.getProperty("os.version"));
		System.out.println("文件分隔符(在 UNIX 系統中是「/」):"+System.getProperty("file.separator"));
		System.out.println("路徑分隔符(在 UNIX 系統中是「:」):"+System.getProperty("path.separator"));
		System.out.println("行分隔符(在 UNIX 系統中是「/n」):"+System.getProperty("line.separator"));
		System.out.println("用戶的帳戶名稱:"+System.getProperty("user.name"));
		System.out.println("用戶的主目錄:"+System.getProperty("user.home"));
		System.out.println("用戶的當前工做目錄: "+System.getProperty("user.dir"));
	
		InetAddress netAddress = getInetAddress();
		System.out.println("host ip:" + getHostIp(netAddress));
		System.out.println("host name:" + getHostName(netAddress));
	}

	/**
	* 獲取本地主機
	* @return 
	*/
	public static InetAddress getInetAddress() {
		try {
			return InetAddress.getLocalHost();
		} catch (UnknownHostException e) {
			System.out.println("unknown host!");
		}
		return null;
	} 

	/**
	* 經過InetAddress獲取本地Ip
	* @param netAddress
	* @return 
	*/
	public static String getHostIp(InetAddress netAddress) {
		if (null == netAddress) {
			return null;
		}
		String ip = netAddress.getHostAddress();
		return ip;
	}

	/**
	* 經過InetAddress獲取本地主機的名字
	* @param netAddress
	* @return 
	*/
	public static String getHostName(InetAddress netAddress) {
		if (null == netAddress) {
			return null;
		}
		String name = netAddress.getHostName();
		return name;
	}
}

然而在Android系統中,卻要使用另外一種方法才能遍歷得到系統的一些屬性
Properties ps = System.getProperties();
Set<Entry<Object, Object>> set = ps.entrySet();
for(Entry<Object, Object> ent : set){
	Log.v("ent", "key:" + ent.getKey() + " |value: " + ent.getValue());
}
相關文章
相關標籤/搜索