熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

獲取運行中的JVM系統屬性

2013-11-23 18:50:44  來源: Java核心技術 

  獲取你的JVM系統環境屬性
  Java的Writer oncerun anywhere口號的確讓我們領略到了Java的神奇也成為SUN宣傳Java的金字招牌拂開這層神秘的面紗我們不難發現其核心是運行在各種操作系統中的JVM(Java虛擬機)在發揮著重要的作用Java虛擬機允許我們的純java類可以達到一次編寫到處運行每個安裝在不同操作系統的Java虛擬機負責著Java程序與操作系統之間的工作因此每個Java虛擬機的系統環境屬性是不同的我們可以通過訪問Java虛擬機的系統屬性來獲知一些關於當前操作系統的一些基本信息這些信息的價值有時是非常重要的
  
  標准SDK中提供了javalangSystem類這個類定義了一個對系統設備(包括系統屬性和系統輸入輸出數據流)的與平台無關的接口方法getProperties()返回一個javautilProperty對象對象中存放了JVM的系統屬性列表我們可以通過這個列表來得到java虛擬機的一些系統屬性
  
  下面的例子中將介紹如何實現獲取JVM系統屬性的功能
  
  類設計
  設計SystemInfo類用來獲取系統的屬性並打印輸出到標准輸出首先我們將設計一個getSystemProperty()方法該方法將調用javalangSystemgetProperties()返回一個系統屬性列表在main()函數中將系統屬性的關鍵字和屬性描述放到一個Hashtable結構中通過遍歷這個結構獲取系統屬性值類結構圖如下
  
 

  //package java;
  
  import javalangSystem;
  import javautilProperties;
  import javautilHashtable;
  import javautilEnumeration;
  
  public class SystemInfo{
    //存放JVM獲得的系統屬性
    static private Properties _property; 
    
    //Main function
    public static void main(String[] args){
        getSystemProperty();
        
        Hashtable hashKey;
        hashKey=new Hashtable();
        //將系統信息的關鍵字和標題放到hashtable
        hashKeyput(javahome            Java安裝目錄     );
        hashKeyput(javaclasspath         裝載類的路徑     );
        hashKeyput(javaspecificationversion    Java API 規范的版本  );
        hashKeyput(javaspecificationvendor    Java API 規范的廠商  );
        hashKeyput(javaspecificationname     Java API 規范的名稱  );
        hashKeyput(javaversion           Java API 實現的版本  );
        hashKeyput(javavendor           Java API 實現的廠商  );
        hashKeyput(javavendorurl         Java API 規范廠商的URL);
        hashKeyput(javavmspecificationversion  Java虛擬機規范的版本 );
        hashKeyput(javavmspecificationvendor   Java虛擬機規范的廠商 );
        hashKeyput(javavmspecificationname    Java虛擬機規范的名稱 );
        hashKeyput(javavmversion         Java虛擬機實現的版本 );
        hashKeyput(javavmvendor          Java虛擬機實現的廠商 );
        hashKeyput(javavmname           Java虛擬機實現的名稱 );
        hashKeyput(javaclassversion        Java類文件格式的版本 );
        hashKeyput(osname             主機操作系統的名稱  );
        hashKeyput(osarch             主機操作系統的體系結構);
        hashKeyput(osversion            主機操作系統的版本  );
        hashKeyput(fileseparator          平台目錄的分隔符   );
        hashKeyput(pathseparator          平台路徑的分隔符   );
        hashKeyput(lineseparator          平台文本行的分隔符  );
        hashKeyput(username            當前用戶的帳戶名稱  );
        hashKeyput(userhome            當前用戶的根目錄   );
        hashKeyput(userdir             當前工作目錄     );
  
        
        Enumeration enum;
        String propertyKey;
        enum=hashKeykeys();
        while(enumhasMoreElements()){
            propertyKey=(String)enumnextElement();             
  
   Systemoutprintln((String)hashKeyget(propertyKey)
  +:+_propertygetProperty(propertyKey));
        }                        
    }
    /**
     * 獲得系統屬性列表
     * @return Properties
    */
    static public Properties getSystemProperty(){
        _property=SystemgetProperties();
        return _property;
    }
  }
  
  運行結果
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/25847.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.