1. 程式人生 > >Java獲取電腦CPU個數及系統資訊

Java獲取電腦CPU個數及系統資訊

Runtime 類:
每個Java應用程式都有一個Runtime類例項,使應用程式能夠與其執行的環境相連線。應用程式不能建立自己的 Runtime 類例項,可以通過getRuntime()方法獲取當前執行時。 
Properties 類:
Properties 類表示了一個持久的屬性集。Properties 可儲存在流中或從流中載入。屬性列表中每個鍵及其對應值都是一個字串。list(PrintStream out)或者list(PrintWriter out)方法將屬性列表輸出到指定的輸出流。
System 類:
System 類包含一些有用的類欄位和方法。它不能被例項化。在 System 類提供的設施中,有標準輸入、標準輸出和錯誤輸出流;對外部定義的屬性和環境變數的訪問;載入檔案和庫的方法;還有快速複製陣列的一部分的實用方法。getProperties()方法確定當前的系統屬性。

import java.util.Properties;//匯入Properties類
public class SystemInfo{
 public static void main(String args[]){
  Properties p=System.getProperties();//獲取當前的系統屬性
  p.list(System.out);//將屬性列表輸出
  System.out.print("CPU個數:");//Runtime.getRuntime()獲取當前執行時的例項
  System.out.println(Runtime.getRuntime().availableProcessors());//availableProcessors()獲取當前電腦CPU數量
  System.out.print("虛擬機器記憶體總量:");
  System.out.println(Runtime.getRuntime().totalMemory());//totalMemory()獲取java虛擬機器中的記憶體總量
  System.out.print("虛擬機器空閒記憶體量:");
  System.out.println(Runtime.getRuntime().freeMemory());//freeMemory()獲取java虛擬機器中的空閒記憶體量
  System.out.print("虛擬機器使用最大記憶體量:");
  System.out.println(Runtime.getRuntime().maxMemory());//maxMemory()獲取java虛擬機器試圖使用的最大記憶體量
 }
}

方法簡單實用,雖然不是經常用,但是還是有必要去了解一下,因為不可能每次遇到不會的都拿出字典來查閱。但搞開放最重要的是拿到資料會運用,我們也不可能把所有的類、方法和屬性等全部記住,所以要會看API和應用。

在本例中,我們要獲取系統資訊,要用到Properties類,首先要建立一個Properties物件,然後通過System類的getProperties()方法獲取當前系統的資訊。然後把獲取到的系統屬性交給Properties物件,該物件儲存著系統資訊的集合。最後由Properties類的list方法,把資訊輸出。Runtime類的幾個方法可以相應的獲取其他的資訊。只要我們熟悉這些方法,自然能應用。

下面將介紹System.getProperty 系統引數:

Properties props=System.getProperties(); //系統屬性 
System.out.println("Java的執行環境版本:"+props.getProperty("java.version")); 
System.out.println("Java的執行環境供應商:"+props.getProperty("java.vendor")); 
System.out.println("Java供應商的URL:"+props.getProperty("java.vendor.url")); 
System.out.println("Java的安裝路徑:"+props.getProperty("java.home")); 
System.out.println("Java的虛擬機器規範版本:"+props.getProperty("java.vm.specification.version")); 
System.out.println("Java的虛擬機器規範供應商:"+props.getProperty("java.vm.specification.vendor")); 
System.out.println("Java的虛擬機器規範名稱:"+props.getProperty("java.vm.specification.name")); 
System.out.println("Java的虛擬機器實現版本:"+props.getProperty("java.vm.version")); 
System.out.println("Java的虛擬機器實現供應商:"+props.getProperty("java.vm.vendor")); 
System.out.println("Java的虛擬機器實現名稱:"+props.getProperty("java.vm.name")); 
System.out.println("Java執行時環境規範版本:"+props.getProperty("java.specification.version")); 
System.out.println("Java執行時環境規範供應商:"+props.getProperty("java.specification.vender")); 
System.out.println("Java執行時環境規範名稱:"+props.getProperty("java.specification.name")); 
System.out.println("Java的類格式版本號:"+props.getProperty("java.class.version")); 
System.out.println("Java的類路徑:"+props.getProperty("java.class.path")); 
System.out.println("載入庫時搜尋的路徑列表:"+props.getProperty("java.library.path")); 
System.out.println("預設的臨時檔案路徑:"+props.getProperty("java.io.tmpdir")); 
System.out.println("一個或多個擴充套件目錄的路徑:"+props.getProperty("java.ext.dirs")); 
System.out.println("作業系統的名稱:"+props.getProperty("os.name")); 
System.out.println("作業系統的構架:"+props.getProperty("os.arch")); 
System.out.println("作業系統的版本:"+props.getProperty("os.version")); 
System.out.println("檔案分隔符:"+props.getProperty("file.separator"));   //在 unix 系統中是"/" 
System.out.println("路徑分隔符:"+props.getProperty("path.separator"));   //在 unix 系統中是":" 
System.out.println("行分隔符:"+props.getProperty("line.separator"));   //在 unix 系統中是"/n" 
System.out.println("使用者的賬戶名稱:"+props.getProperty("user.name")); 
System.out.println("使用者的主目錄:"+props.getProperty("user.home")); 

System.out.println("使用者的當前工作目錄:"+props.getProperty("user.dir"));