⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runtime.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * @(#)Runtime.java	1.65 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */package java.lang;import java.io.*;import java.util.StringTokenizer;/** * Every Java application has a single instance of class  * <code>Runtime</code> that allows the application to interface with  * the environment in which the application is running. The current  * runtime can be obtained from the <code>getRuntime</code> method.  * <p> * An application cannot create its own instance of this class.  * * @author  unascribed * @version 1.57, 05/03/00 * @see     java.lang.Runtime#getRuntime() * @since   JDK1.0 */public class Runtime {    private static Runtime currentRuntime = new Runtime();    /**     * Returns the runtime object associated with the current Java application.     * Most of the methods of class <code>Runtime</code> are instance      * methods and must be invoked with respect to the current runtime object.      *      * @return  the <code>Runtime</code> object associated with the current     *          Java application.     */    public static Runtime getRuntime() { 	return currentRuntime;    }    /** Don't let anyone else instantiate this class */    private Runtime() {}    /**     * Terminates the currently running Java virtual machine by initiating its     * shutdown sequence.  This method never returns normally.  The argument     * serves as a status code; by convention, a nonzero status code indicates     * abnormal termination.     *     * <p> The virtual machine's shutdown sequence consists of two phases.  In     * the first phase all registered {@link #addShutdownHook shutdown hooks},     * if any, are started in some unspecified order and allowed to run     * concurrently until they finish.  In the second phase all uninvoked     * finalizers are run if finalization-on-exit     * has been enabled.  Once this is done the virtual machine {@link #halt     * halts}.     *     * <p> If this method is invoked after the virtual machine has begun its     * shutdown sequence then if shutdown hooks are being run this method will     * block indefinitely.  If shutdown hooks have already been run and on-exit     * finalization has been enabled then this method halts the virtual machine     * with the given status code if the status is nonzero; otherwise, it     * blocks indefinitely.     *     * <p> The <tt>{@link System#exit(int) System.exit}</tt> method is the     * conventional and convenient means of invoking this method. <p>     *     * If process model exists, Runtime.exit() must rely on the process      * exiting to release resources.     * <p>     * If process model does not exist, and a security manager exists,     * the security manager by default must prohibit calls to Runtime.exit()      * by throwing SecurityException.  Otherwise, the system will hang      * indefinitely when called.     * <p>     * @param  status     *         Termination status.  By convention, a nonzero status code     *         indicates abnormal termination.     *     * @throws SecurityException     *         If a security manager is present and its <tt>{@link     *         SecurityManager#checkExit checkExit}</tt> method does not permit     *         exiting with the specified status     *     * @see java.lang.SecurityException     * @see java.lang.SecurityManager#checkExit(int)     * @see #addShutdownHook     * @see #removeShutdownHook     * @see #halt(int)     */    public void exit(int status) {	SecurityManager security = System.getSecurityManager();	if (security != null) {	    security.checkExit(status);	}	if (!safeExit(status)) {	    Shutdown.exit(status);	}    }    private static native boolean safeExit(int status);    /**     * Registers a new virtual-machine shutdown hook.     *     * <p> The Java virtual machine <i>shuts down</i> in response to two kinds     * of events:     *     *   <ul>     *     *   <p> <li> The program <i>exits</i> normally, when the last non-daemon     *   thread exits or when the <tt>{@link #exit exit}</tt> (equivalently,     *   <tt>{@link System#exit(int) System.exit}</tt>) method is invoked, or     *     *   <p> <li> The virtual machine is <i>terminated</i> in response to a     *   user interrupt, such as typing <tt>^C</tt>, or a system-wide event,     *   such as user logoff or system shutdown.     *     *   </ul>     *     * <p> A <i>shutdown hook</i> is simply an initialized but unstarted     * thread.  When the virtual machine begins its shutdown sequence it will     * start all registered shutdown hooks in some unspecified order and let     * them run concurrently.  When all the hooks have finished it will then     * run all uninvoked finalizers if finalization-on-exit has been enabled.     * Finally, the virtual machine will halt.  Note that daemon threads will     * continue to run during the shutdown sequence, as will non-daemon threads     * if shutdown was initiated by invoking the <tt>{@link #exit exit}</tt>     * method.     *     * <p> Once the shutdown sequence has begun it can be stopped only by     * invoking the <tt>{@link #halt halt}</tt> method, which forcibly     * terminates the virtual machine.     *     * <p> Once the shutdown sequence has begun it is impossible to register a     * new shutdown hook or de-register a previously-registered hook.     * Attempting either of these operations will cause an     * <tt>{@link IllegalStateException}</tt> to be thrown.     *     * <p> Shutdown hooks run at a delicate time in the life cycle of a virtual     * machine and should therefore be coded defensively.  They should, in     * particular, be written to be thread-safe and to avoid deadlocks insofar     * as possible.  They should also not rely blindly upon services that may     * have registered their own shutdown hooks and therefore may themselves in     * the process of shutting down.     *     * <p> Shutdown hooks should also finish their work quickly.  When a     * program invokes <tt>{@link #exit exit}</tt> the expectation is     * that the virtual machine will promptly shut down and exit.  When the     * virtual machine is terminated due to user logoff or system shutdown the     * underlying operating system may only allow a fixed amount of time in     * which to shut down and exit.  It is therefore inadvisable to attempt any     * user interaction or to perform a long-running computation in a shutdown     * hook.     *     * <p> Uncaught exceptions are handled in shutdown hooks just as in any     * other thread, by invoking the <tt>{@link ThreadGroup#uncaughtException     * uncaughtException}</tt> method of the thread's <tt>{@link     * ThreadGroup}</tt> object.  The default implementation of this method     * prints the exception's stack trace to <tt>{@link System#err}</tt> and     * terminates the thread; it does not cause the virtual machine to exit or     * halt.     *     * <p> In rare circumstances the virtual machine may <i>abort</i>, that is,     * stop running without shutting down cleanly.  This occurs when the     * virtual machine is terminated externally, for example with the     * <tt>SIGKILL</tt> signal on Unix or the <tt>TerminateProcess</tt> call on     * Microsoft Windows.  The virtual machine may also abort if a native method goes awry     * by, for example, corrupting internal data structures or attempting to     * access nonexistent memory.  If the virtual machine aborts then no     * guarantee can be made about whether or not any shutdown hooks will be     * run. <p>     *     * @param   hook     *          An initialized but unstarted <tt>{@link Thread}</tt> object     *     * @throws  IllegalArgumentException     *          If the specified hook has already been registered,     *          or if it can be determined that the hook is already running or     *          has already been run     *     * @throws  IllegalStateException     *          If the virtual machine is already in the process     *          of shutting down     *     * @throws  SecurityException     *          If a security manager is present and it denies     *          <tt>{@link RuntimePermission}("shutdownHooks")</tt>     *     * @see #removeShutdownHook     * @see #halt(int)     * @see #exit(int)     * @since 1.3     */    public void addShutdownHook(Thread hook) {	SecurityManager sm = System.getSecurityManager();	if (sm != null) {	    sm.checkPermission(new RuntimePermission("shutdownHooks"));	}	Shutdown.add(hook);    }    /**     * De-registers a previously-registered virtual-machine shutdown hook. <p>     *     * @param hook the hook to remove     * @return <tt>true</tt> if the specified hook had previously been     * registered and was successfully de-registered, <tt>false</tt>     * otherwise.     *     * @throws  IllegalStateException     *          If the virtual machine is already in the process of shutting     *          down     *     * @throws  SecurityException     *          If a security manager is present and it denies     *          <tt>{@link RuntimePermission}("shutdownHooks")</tt>     *     * @see #addShutdownHook     * @see #exit(int)     * @since 1.3     */    public boolean removeShutdownHook(Thread hook) {	SecurityManager sm = System.getSecurityManager();	if (sm != null) {	    sm.checkPermission(new RuntimePermission("shutdownHooks"));	}	return Shutdown.remove(hook);    }    /**     * Forcibly terminates the currently running Java virtual machine.  This     * method never returns normally.     *     * <p> This method should be used with extreme caution.  Unlike the     * <tt>{@link #exit exit}</tt> method, this method does not cause shutdown     * hooks to be started and does not run uninvoked finalizers if     * finalization-on-exit has been enabled.  If the shutdown sequence has     * already been initiated then this method does not wait for any running     * shutdown hooks or finalizers to finish their work. <p>     *     * If process model exists, Runtime.halt() must rely on the process      * exiting to release resources.     * <p>     * If process model does not exist, and a security manager exists,     * the security manager by default must prohibit calls to Runtime.halt()      * by throwing SecurityException.  Otherwise, the system will hang      * indefinitely when called.     * <p>     *     * @param  status     *         Termination status.  By convention, a nonzero status code     *         indicates abnormal termination.  If the <tt>{@link Runtime#exit     *         exit}</tt> (equivalently, <tt>{@link System#exit(int)     *         System.exit}</tt>) method has already been invoked then this     *         status code will override the status code passed to that method.     *     * @throws SecurityException     *         If a security manager is present and its <tt>{@link     *         SecurityManager#checkExit checkExit}</tt> method does not permit     *         an exit with the specified status     *     * @see #exit     * @see #addShutdownHook     * @see #removeShutdownHook     * @since 1.3     */    public void halt(int status) {	SecurityManager sm = System.getSecurityManager();	if (sm != null) {	    sm.checkExit(status);	}	Shutdown.halt(status);    }    /**     * Enable or disable finalization on exit; doing so specifies that the     * finalizers of all objects that have finalizers that have not yet been     * automatically invoked are to be run before the Java runtime exits.     * By default, finalization on exit is disabled.     *      * <p>If there is a security manager,      * its <code>checkExit</code> method is first called     * with 0 as its argument to ensure the exit is allowed.      * This could result in a SecurityException.     *     * param value true to enable finalization on exit, false to disable     * deprecated  This method is inherently unsafe.  It may result in     * 	    finalizers being called on live objects while other threads are     *      concurrently manipulating those objects, resulting in erratic     *	    behavior or deadlock.

⌨️ 快捷键说明

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