獲取你的JVM系統環境屬性 Java的
Writer once
run anywhere
口號的確讓我們領略到了Java的神奇
也成為SUN宣傳Java的金字招牌
拂開這層神秘的面紗
我們不難發現其核心是運行在各種操作系統中的JVM(Java虛擬機)在發揮著重要的作用
Java虛擬機允許我們的純java類可以達到
一次編寫
到處運行
每個安裝在不同操作系統的Java虛擬機負責著Java程序與操作系統之間的工作
因此每個Java虛擬機的系統環境屬性是不同的
我們可以通過訪問Java虛擬機的系統屬性來獲知一些關於當前操作系統的一些基本信息
這些信息的價值有時是非常重要的
標准SDK中提供了java
lang
System類
這個類定義了一個對系統設備(包括系統屬性和系統輸入輸出數據流)的
與平台無關的接口
方法getProperties()返回一個java
util
Property對象
對象中存放了JVM的系統屬性列表
我們可以通過這個列表來得到java虛擬機的一些系統屬性
下面的例子中
將介紹如何實現獲取JVM系統屬性的功能
類設計 設計SystemInfo類
用來獲取系統的屬性
並打印輸出到標准輸出
首先我們將設計一個getSystemProperty()方法
該方法將調用java
lang
System
getProperties()返回一個系統屬性列表
在main()函數中
將系統屬性的關鍵字和屬性描述放到一個Hashtable結構中
通過遍歷這個結構
獲取系統屬性值
類結構圖如下
//package
java;
import java
lang
System;
import java
util
Properties;
import java
util
Hashtable;
import java
util
Enumeration;
public class SystemInfo{
//存放JVM獲得的系統屬性
static private Properties _property;
//Main function
public static void main(String[] args){
getSystemProperty();
Hashtable hashKey;
hashKey=new Hashtable();
//將系統信息的關鍵字和標題放到hashtable
hashKey
put(
java
home
Java安裝目錄
);
hashKey
put(
java
class
path
裝載類的路徑
);
hashKey
put(
java
specification
version
Java API 規范的版本
);
hashKey
put(
java
specification
vendor
Java API 規范的廠商
);
hashKey
put(
java
specification
name
Java API 規范的名稱
);
hashKey
put(
java
version
Java API 實現的版本
);
hashKey
put(
java
vendor
Java API 實現的廠商
);
hashKey
put(
java
vendor
url
Java API 規范廠商的URL
);
hashKey
put(
java
vm
specification
version
Java虛擬機規范的版本
);
hashKey
put(
java
vm
specification
vendor
Java虛擬機規范的廠商
);
hashKey
put(
java
vm
specification
name
Java虛擬機規范的名稱
);
hashKey
put(
java
vm
version
Java虛擬機實現的版本
);
hashKey
put(
java
vm
vendor
Java虛擬機實現的廠商
);
hashKey
put(
java
vm
name
Java虛擬機實現的名稱
);
hashKey
put(
java
class
version
Java類文件格式的版本
);
hashKey
put(
os
name
主機操作系統的名稱
);
hashKey
put(
os
arch
主機操作系統的體系結構
);
hashKey
put(
os
version
主機操作系統的版本
);
hashKey
put(
file
separator
平台目錄的分隔符
);
hashKey
put(
path
separator
平台路徑的分隔符
);
hashKey
put(
line
separator
平台文本行的分隔符
);
hashKey
put(
user
name
當前用戶的帳戶名稱
);
hashKey
put(
user
home
當前用戶的根目錄
);
hashKey
put(
user
dir
當前工作目錄
);
Enumeration enum;
String propertyKey;
enum=hashKey
keys();
while(enum
hasMoreElements()){
propertyKey=(String)enum
nextElement();
System
out
println((String)hashKey
get(propertyKey)
+
:
+_property
getProperty(propertyKey));
}
}
/**
* 獲得系統屬性列表
* @return Properties
*/
static public Properties getSystemProperty(){
_property=System
getProperties();
return _property;
}
}
運行結果
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25847.html