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"));