runtime.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 944 行 · 第 1/4 页

HTML
944
字号
<TD><CODE><B><A HREF="Runtime.html#getRuntime()">getRuntime</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回与当前 Java 应用程序相关的运行时对象。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#halt(int)">halt</A></B>(int&nbsp;status)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;强行终止目前正在运行的 Java 虚拟机。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#load(java.lang.String)">load</A></B>(<A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;filename)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加载作为动态库的指定文件名。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#loadLibrary(java.lang.String)">loadLibrary</A></B>(<A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;libname)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加载具有指定库名的动态库。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;long</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#maxMemory()">maxMemory</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回 Java 虚拟机试图使用的最大内存量。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#removeShutdownHook(java.lang.Thread)">removeShutdownHook</A></B>(<A HREF="Thread.html" title="java.lang 中的类">Thread</A>&nbsp;hook)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;取消注册某个先前已注册的虚拟机关闭挂钩。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#runFinalization()">runFinalization</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行挂起 finalization 的所有对象的终止方法。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>static&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#runFinalizersOnExit(boolean)">runFinalizersOnExit</A></B>(boolean&nbsp;value)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>已过时。</B>&nbsp;<I>此方法本身具有不安全性。它可能对正在使用的对象调用终结方法,而其他线程正在操作这些对象,从而导致不正确的行为或死锁。</I></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;long</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#totalMemory()">totalMemory</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回 Java 虚拟机中的内存总量。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#traceInstructions(boolean)">traceInstructions</A></B>(boolean&nbsp;on)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;启用/禁用指令跟踪。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Runtime.html#traceMethodCalls(boolean)">traceMethodCalls</A></B>(boolean&nbsp;on)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;启用/禁用方法调用跟踪。</TD></TR></TABLE>&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TH ALIGN="left"><B>从类 java.lang.<A HREF="Object.html" title="java.lang 中的类">Object</A> 继承的方法</B></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="Object.html#clone()">clone</A>, <A HREF="Object.html#equals(java.lang.Object)">equals</A>, <A HREF="Object.html#finalize()">finalize</A>, <A HREF="Object.html#getClass()">getClass</A>, <A HREF="Object.html#hashCode()">hashCode</A>, <A HREF="Object.html#notify()">notify</A>, <A HREF="Object.html#notifyAll()">notifyAll</A>, <A HREF="Object.html#toString()">toString</A>, <A HREF="Object.html#wait()">wait</A>, <A HREF="Object.html#wait(long)">wait</A>, <A HREF="Object.html#wait(long, int)">wait</A></CODE></TD></TR></TABLE>&nbsp;<P><!-- ============ METHOD DETAIL ========== --><A NAME="method_detail"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"><B>方法详细信息</B></FONT></TH></TR></TABLE><A NAME="getRuntime()"><!-- --></A><H3>getRuntime</H3><PRE>public static <A HREF="Runtime.html" title="java.lang 中的类">Runtime</A> <B>getRuntime</B>()</PRE><DL><DD>返回与当前 Java 应用程序相关的运行时对象。<code>Runtime</code> 类的大多数方法是实例方法,并且必须根据当前的运行时对象对其进行调用。<P><DD><DL><DT><B>返回:</B><DD>与当前 Java 应用程序相关的 <code>Runtime</code> 对象。</DL></DD></DL><HR><A NAME="exit(int)"><!-- --></A><H3>exit</H3><PRE>public void <B>exit</B>(int&nbsp;status)</PRE><DL><DD>通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。<p> 虚拟机的关闭序列包含两个阶段。在第一个阶段中,会以某种未指定的顺序启动所有已注册的<A HREF="Runtime.html#addShutdownHook(java.lang.Thread)"><CODE>关闭挂钩</CODE></A>(如果有的话),并且允许它们同时运行直至结束。在第二个阶段中,如果已启用<A HREF="Runtime.html#runFinalizersOnExit(boolean)"><CODE>退出终结</CODE></A>,则运行所有未调用的终结方法。一旦完成这个阶段,虚拟机就会<A HREF="Runtime.html#halt(int)"><CODE>暂停</CODE></A>。<p> 如果在虚拟机已开始其关闭序列后才调用此方法,那么若正在运行关闭挂钩,则将无限期地阻断此方法。如果已经运行完关闭挂钩,并且已启用退出终结 (on-exit finalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。<p> <tt><A HREF="System.html#exit(int)"><CODE>System.exit</CODE></A></tt> 方法是调用此方法的一种传统而便捷的方式。 <p><P><DD><DL><DT><B>参数:</B><DD><CODE>status</CODE> - 终止状态。按照惯例,非零的状态码表明非正常终止。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果安全管理器存在,并且其 <tt><A HREF="SecurityManager.html#checkExit(int)"><CODE>checkExit</CODE></A></tt> 方法不允许存在指定的状态<DT><B>另请参见:</B><DD><A HREF="SecurityException.html" title="java.lang 中的类"><CODE>SecurityException</CODE></A>, <A HREF="SecurityManager.html#checkExit(int)"><CODE>SecurityManager.checkExit(int)</CODE></A>, <A HREF="Runtime.html#addShutdownHook(java.lang.Thread)"><CODE>addShutdownHook(java.lang.Thread)</CODE></A>, <A HREF="Runtime.html#removeShutdownHook(java.lang.Thread)"><CODE>removeShutdownHook(java.lang.Thread)</CODE></A>, <A HREF="Runtime.html#runFinalizersOnExit(boolean)"><CODE>@see #halt(int)</CODE></A></DL></DD></DL><HR><A NAME="addShutdownHook(java.lang.Thread)"><!-- --></A><H3>addShutdownHook</H3><PRE>public void <B>addShutdownHook</B>(<A HREF="Thread.html" title="java.lang 中的类">Thread</A>&nbsp;hook)</PRE><DL><DD>注册新的虚拟机来关闭挂钩。<p> Java 虚拟机会为了响应以下两类事件而<i>关闭</i>:   <ul><p> <li> 程序正常<i>退出</i>,这发生在最后的非守护线程退出时,或者在调用 <tt><A HREF="Runtime.html#exit(int)"><CODE>exit</CODE></A></tt>(等同于<tt><A HREF="System.html#exit(int)"><CODE>System.exit</CODE></A></tt>)方法时。或者,<p> <li> 为响应用户中断而<i>终止</i> 虚拟机,如键入 <tt>^C</tt>;或发生系统事件,比如用户注销或系统关闭。   </ul><p> <i>关闭挂钩</i> 只是一个已初始化但尚未启动的线程。虚拟机开始启用其关闭序列时,它会以某种未指定的顺序启动所有已注册的关闭挂钩,并让它们同时运行。运行完所有的挂钩后,如果已启用退出终结,那么虚拟机接着会运行所有未调用的终结方法。最后,虚拟机会暂停。注意,关闭序列期间会继续运行守护线程,如果通过调用 <tt><A HREF="Runtime.html#exit(int)"><CODE>exit</CODE></A></tt> 方法来发起关闭序列,那么也会继续运行非守护线程。<p> 一旦开始了关闭序列,则只能通过调用 <tt><A HREF="Runtime.html#halt(int)"><CODE>halt</CODE></A></tt> 方法来停止这个序列,此方法可强行终止虚拟机。<p> 一旦开始了关闭序列,则不可能注册新的关闭挂钩或取消注册先前已注册的挂钩。尝试执行这些操作会导致抛出 <tt><A HREF="IllegalStateException.html" title="java.lang 中的类"><CODE>IllegalStateException</CODE></A></tt>。<p> 关闭挂钩可在虚拟机生命周期中的特定时间运行,因此应保护性地对其进行编码。特别是应将关闭挂钩编写为线程安全的,并尽可能地避免死锁。关闭挂钩还应该不盲目地依靠某些服务,这些服务可能已注册了自己的关闭挂钩,所以其本身可能正处于关闭进程中。<p> 关闭挂钩应该快速地完成其工作。当程序调用 <tt><A HREF="Runtime.html#exit(int)"><CODE>exit</CODE></A></tt> 时,虚拟机应该迅速地关闭并退出。由于用户注销或系统关闭而终止虚拟机时,底层的操作系统可能只允许在固定的时间内关闭并退出。因此在关闭挂钩中尝试进行任何用户交互或执行长时间的计算都是不明智的。<p> 与其他所有线程一样,通过调用线程 <tt><A HREF="ThreadGroup.html" title="java.lang 中的类"><CODE>ThreadGroup</CODE></A></tt> 对象的 <tt><A HREF="ThreadGroup.html#uncaughtException(java.lang.Thread, java.lang.Throwable)"><CODE>uncaughtException</CODE></A></tt> 方法,可在关闭挂钩中处理未捕获的异常。此方法的默认实现是将该异常的堆栈跟踪 (stack trace) 打印至 <tt><A HREF="System.html#err"><CODE>System.err</CODE></A></tt> 并终止线程;它不会导致虚拟机退出或暂停。<p> 仅在很少的情况下,虚拟机可能会<i>中止</i>,也就是没有完全关闭就停止运行。虚拟机被外部终止时会出现这种现象,比如在 Unix 上使用 <tt>SIGKILL</tt> 信号或者在 Microsoft Windows 上调用 <tt>TerminateProcess</tt>。如果由于内部数据结构损坏或试图访问不存在的内存而导致本机方法执行错误,那么可能也会中止虚拟机。如果虚拟机中止,则无法保证是否将运行关闭挂钩。 <p><P><DD><DL><DT><B>参数:</B><DD><CODE>hook</CODE> - 一个已初始化但尚未启动的 <tt><A HREF="Thread.html" title="java.lang 中的类"><CODE>Thread</CODE></A></tt> 对象<DT><B>抛出:</B><DD><CODE><A HREF="IllegalArgumentException.html" title="java.lang 中的类">IllegalArgumentException</A></CODE> - 如果指定的挂钩已注册,或者可以确定挂钩正在运行或者已运行完毕<DD><CODE><A HREF="IllegalStateException.html" title="java.lang 中的类">IllegalStateException</A></CODE> - 如果虚拟机已经处于关闭进程中<DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果安全管理器存在并且拒绝 <tt><A HREF="RuntimePermission.html" title="java.lang 中的类"><CODE>RuntimePermission</CODE></A>(&quot;shutdownHooks&quot;)</tt><DT><B>从以下版本开始:</B></DT>  <DD>1.3</DD><DT><B>另请参见:</B><DD><A HREF="Runtime.html#removeShutdownHook(java.lang.Thread)"><CODE>removeShutdownHook(java.lang.Thread)</CODE></A>, <A HREF="Runtime.html#halt(int)"><CODE>halt(int)</CODE></A>, <A HREF="Runtime.html#exit(int)"><CODE>exit(int)</CODE></A></DL></DD></DL><HR><A NAME="removeShutdownHook(java.lang.Thread)"><!-- --></A><H3>removeShutdownHook</H3><PRE>public boolean <B>removeShutdownHook</B>(<A HREF="Thread.html" title="java.lang 中的类">Thread</A>&nbsp;hook)</PRE><DL><DD>取消注册某个先前已注册的虚拟机关闭挂钩。 <p><P><DD><DL><DT><B>参数:</B><DD><CODE>hook</CODE> - 要删除的挂钩<DT><B>返回:</B><DD>如果指定的挂钩先前已注册并且成功地取消注册,则返回 <tt>true</tt>,其他情况返回 <tt>false</tt>。<DT><B>抛出:</B><DD><CODE><A HREF="IllegalStateException.html" title="java.lang 中的类">IllegalStateException</A></CODE> - 如果虚拟机已经处于关闭进程中<DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果安全管理器存在并且拒绝 <tt><A HREF="RuntimePermission.html" title="java.lang 中的类"><CODE>RuntimePermission</CODE></A>(&quot;shutdownHooks&quot;)</tt><DT><B>从以下版本开始:</B></DT>  <DD>1.3</DD><DT><B>另请参见:</B><DD><A HREF="Runtime.html#addShutdownHook(java.lang.Thread)"><CODE>addShutdownHook(java.lang.Thread)</CODE></A>, <A HREF="Runtime.html#exit(int)"><CODE>exit(int)</CODE></A></DL></DD></DL><HR><A NAME="halt(int)"><!-- --></A><H3>halt</H3><PRE>public void <B>halt</B>(int&nbsp;status)</PRE><DL><DD>强行终止目前正在运行的 Java 虚拟机。此方法从不正常返回。 <p> 应小心使用此方法。与 <tt><A HREF="Runtime.html#exit(int)"><CODE>exit</CODE></A></tt> 方法不同,此方法不会启动关闭挂钩,并且如果已启用退出终结,此方法也不会运行未调用的终结方法。如果已经发起关闭序列,那么此方法不会等待所有正在运行的关闭挂钩或终结方法完成其工作。 <p><P><DD><DL><DT><B>参数:</B><DD><CODE>status</CODE> - 终止状态。按照惯例,非零的状态码表明非正常终止。如果已经调用了 <tt><A HREF="Runtime.html#exit(int)"><CODE>exit</CODE></A></tt>(<tt><A HREF="System.html#exit(int)"><CODE>System.exit</CODE></A></tt> 也一样)方法,那么该状态码将重写已传递至此方法的状态码。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果安全管理器存在,并且其 <tt><A HREF="SecurityManager.html#checkExit(int)"><CODE>checkExit</CODE></A></tt> 方法不允许具有指定状态时退出<DT><B>从以下版本开始:</B></DT>  <DD>1.3</DD><DT><B>另请参见:</B><DD><A HREF="Runtime.html#exit(int)"><CODE>exit(int)</CODE></A>, <A HREF="Runtime.html#addShutdownHook(java.lang.Thread)"><CODE>addShutdownHook(java.lang.Thread)</CODE></A>, <A HREF="Runtime.html#removeShutdownHook(java.lang.Thread)"><CODE>removeShutdownHook(java.lang.Thread)</CODE></A></DL></DD></DL><HR><A NAME="runFinalizersOnExit(boolean)"><!-- --></A><H3>runFinalizersOnExit</H3><PRE>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?