java程序在不一樣的操做系統上運行時,可能須要獲取平臺相關的屬性,或者調用平臺命令來完成特定的功能。java提供了System類和Runtime類來與程序的運行平臺進行交互。java
1.System類表明當前java程序的運行平臺,程序不能建立System類的對象,System類提供一些經常使用的類變量和類方法,容許直接經過System類來與程序的運行平臺進行交互。system類提供了表明標準輸入輸出和錯誤輸出的類變量,並提供了一些靜態方法用於訪問環境變量、系統屬性的方法,還提供了加載文件和動態連接庫的方法。加載文件和動態鏈接庫主要對native方法有用。System類還提供了通知系統進行垃圾回收的gc()方法和runFinalization(),System類還有兩個獲取系統當前時間的方法currentTimeMillis()-獲取系統時間以毫秒爲單位,nanoTime()-以納秒爲單位。System類的in、out、err分別提供了系統的標準的輸入、標準的輸出、錯誤輸出流。操作系統
2.Runtime類表明java程序的運行的環境,每一個java程序都有一個與之對應的Runtime實例,應用程序經過該對象與其運行時環境相連。應用程序不能建立本身的Runtime實例,但能夠經過getRuntime()方法獲取與之相關聯的Runtime對象。Runtime類也提供了gc()方法和runFinalization()方法來通知系統進行垃圾回收,清理系統資源,並提供load(String filename)和loadLibrary(String libname)方法來加載文件和動態資源連。Runtime類表明Java程序的運行時環境,能夠訪問JVM的相關信息,如處理器數量、內存信息。Runtime的另外一個功能,他能夠直接啓動一個進程來運行操做系統的命令。code
package com.lanou.test; public class Demo05 { public static void main(String[] args) { // TODO Auto-generated method stub Runtime rt=Runtime.getRuntime(); System.out.println("處理器個數:"+rt.availableProcessors()); System.out.println("空閒內存數:"+rt.freeMemory()); System.out.println("總內存數:"+rt.totalMemory()); System.out.println("可用最大內存數:"+rt.maxMemory()); } }
package com.lanou.test; public class Demo06 { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Runtime rt=Runtime.getRuntime(); rt.exec("notepad.exe"); } }