Runtime类

来源:互联网 发布:考试宝典软件怎么样 编辑:程序博客网 时间:2024/04/29 06:29

每一个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)
创建本地化版本的输出流。

原创粉丝点击