Runtime類

每一個Java應用程序都有一個Runtime類的實例,允許應用程序與其運行的環境進行交互。我們只能使用getRuntime方法得到當前的運行時環境。

類的方法如下:
·public static Runtime getRuntime() 得到與當前Java應用程序相聯繫的運行時環境。


·public void exit(int status)
中斷當前運行的Java虛擬機。參數status爲狀態碼,通常非0的狀態碼描述非正常的中斷


·public void addShutdownHook(Thread hook)
登記新的虛擬機shutdown hook。shutdown hook是一個簡單的、已初始化但還未啓動的線程。當虛擬機開始它的shutdown序列,虛擬機將以不確定的順序啓動所有的、已登記的 shutdown hook,並讓它們並行運行。當所有的hook完成,如果支持finalization-on-exit,將調用所有未調用的finallizer。
在兩種情況下Java虛擬機將關閉:
(1)程序正常退出,當最後一個非守護線程退出或調用了exit方法。
(2)虛擬機被用戶中斷(例如:鍵入了ctr+C),或者是一個系統範圍的事件(例如:用戶Logoff或系統關閉)。
一旦shutdown序列開始,就不可以再登記新的shutdown hook或解除先前登記的hook。否則,將拋擲IllegalStateException異常;如果參數hook已經登記,或者已經運行,將拋擲IllegalArgumentException異常;如果安全管理器存在且拒絕RuntimePermission("shut-downHooks"),將拋擲SeurityException異常。


·public boolean removeShutdownhook(Thread hook)
解除先前登記的虛擬機shutdown hook。
如果虛擬機已經處於shutdown過程,則拋擲IllegalStateException異常;如果安全管理器存在且否定RuntimePermission(“shutdownHooks”),將拋擲SecurityException異常。
·public void halt(int status)
強制中斷當前運行的Java虛擬機,使用該方法應該非常地小心,與exit方法不同,它不會導致shutdown hook啓動,即使支持finalization-on-exit,也不會運行還未調用的finalizer。參數status爲中斷的狀態,通常,非0的狀態碼描述了非正常的中斷。
如果安全管理器存在且其上的checkExit方法不允許以指定的狀態退出,則拋擲SecurityException異常。

·public Process exec(String command)throws IOException
在一個單獨的進程中執行參數command指定的命令,返回值爲一個管理子進程的Process對象。
如果安全管理器存在且其上的checkExec方法不允許創建子進程,則拋擲SecurityException異常;如果發生I/O錯誤,則拋擲IOException異常。


·public Process exes(String cmd,String envp[]) throws IOException
在一個單獨的進程中,使用指定的環境envp[],執行參數command指定的命令。其中envp[]爲字符串數組,其格式爲“名稱= 值”。返回值爲一個管理子進程的Process對象。
如果安全管理器存在且其上的checkExec方法不允許創建子進程,則拋擲SecurityException異常;如果發生I/O錯誤,則拋擲IOException異常。


·public Process exec(String command,String envp[],File dir) throws IOException
在一個單獨的進程中,使用指定的環境envp[]和工作目錄dir,執行參數command指定的命令。其中,envp[]爲字符串數組,其格式爲“名稱= 值”。如果工作目錄dir爲null,子進程繼承當前進程的的當前工作目錄,返回值爲一個管理子進程的Process對象。如果安全管理器存在且其上的checkExec方法不允許創建子進程,則拋擲SecurityException異常;如果發生I/O錯誤,則拋擲IOExceptiop異常。


·public Process exec(String cmdarray[]) throws IOException
在一個單獨的進程中,執行參數cmdarray[]指定的命令。參數cmdarray[]爲需執行的命令的數組。返回值是一個管理子進程的Process對象。 如果安全管理器存在且checkExec方法不允許創建子進程,則拋擲SecurityException異常;如果發牛I/O錯誤,則拋擲IOException異常。


·public process exec(String cmdarray[],String enevp[]) throws IOException
在一個單獨的進程中,使用指定的環境enevp[],執行參數cmdarray[]指定的命令。參數cmdarray[]爲需執行命令的數組。返回值爲一個管理子進程的Process對象。
如果安全管理器存在且其上的checkExec方法不允許創建子進程,則拋擲SecurityException異常;如果cmdarrat[]爲null,則拋擲NullPointerException異常;如果cmdarray[]是一個長度爲0的空數組,則拋擲indexOutOfboundsException異常;如果發生I/O錯誤,則拋擲IOException異常。


·public Process exec(String cmdarray[],String enevp[],File dir) throws IOException
在一個單獨的進程中,使用指定的環境enevp[]和工作目錄dir,執行參數cmdarray[]指定的命令,返回值爲一個管理子進程的Process對象。
如果安全管理器存在且其上的。checkExec方法不允許創建子進程,則拋擲securityException異常;如果cmdarray[]爲null,則拋擲NullPointerException異常;如果cmdarray[]是一個長度爲0的空數組,則拋擲IndexOutOfBoundsException異常;如果發生I/O錯誤,則拋擲IOException異常。

·public native long freeMemory()
得到系統的空閒內存,單位爲字節。調用gc方法可能會導致freememory結果的增加。


·public native long totalMemory()
得到Java虛擬機中的內存總數,單位爲字節。該方法的返回值會隨事件的變化而變化,依賴於主機環境。


·public native void gc()
運行垃圾收集器。


·Public void runFinalization()
運行任何未決finalization對象的finalization方法。


·public native void traceInstructions(boolean on)
設置對指令的追蹤,如果參數on爲true,則Java虛擬機對於其上執行的每一條指令都發出調試信息。


·public native void traceMethodCalls(boolean on)
設置對調用方法的追蹤。如果參數on爲true,則支持指令的追蹤。


·public void load(String filename)
裝載參數filename指定的動態庫。
如果安全管理器存在且其上的checkLink方法不允許裝載指定動態庫,將拋擲 SecurityException異常;如果filename參數指定的文件不存在,則拋擲UnsatisfiedLinkError異常。


·public void loadLibrary(String libname)
裝載參數libname指定的動態庫。
如果安全管理器存在且它的checkLink方法不允許指定動態庫的裝載,將拋擲SecurityException異常;如果參數指定的動態庫不存在,則拋擲UnsatisfiedLinkError異常。


·public InputStream getLocalizaedInputStream(InputStream in)
創建本地化版本的輸入流。


·public OutputStream getLocalizedOutputStream(OutputStream out)
創建本地化版本的輸出流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章