Runtime
that allows the application to interface with
the environment in which the application is running. The current
runtime can be obtained from the getRuntime
method.
An application cannot create its own instance of this class.
The Java Virtual Machine initiates the shutdown sequence in response to one of several events:
Runtime.exit
or System.exit
method is called
for the first time; orAt the beginning of the shutdown sequence, the registered shutdown hooks are started in some unspecified order. They run concurrently with any daemon or non-daemon threads that were alive at the beginning of the shutdown sequence.
After the shutdown sequence has begun, registration and de-registration of shutdown hooks
with addShutdownHook
and removeShutdownHook
is prohibited. However, creating and starting new threads is permitted. New threads run
concurrently with the registered shutdown hooks and with any daemon or non-daemon threads
that are already running.
The shutdown sequence finishes when all shutdown hooks have terminated. At this point, the Java Virtual Machine terminates as described below.
It is possible that one or more shutdown hooks do not terminate, for example, because
of an infinite loop. In this case, the shutdown sequence will never finish. Other threads
and shutdown hooks continue to run and can terminate the JVM via the halt
method.
Prior to the beginning of the shutdown sequence, it is possible for a program to start
a shutdown hook by calling its start
method explicitly. If this occurs, the
behavior of the shutdown sequence is unspecified.
The JVM terminates when the shutdown sequence finishes or when halt
is called.
In contrast to exit
, the halt
method does not initiate the
shutdown sequence.
When the JVM terminates, all threads are immediately prevented from executing any further Java code. This includes shutdown hooks as well as daemon and non-daemon threads. This means, for example, that:
finally
clauses are not executed;Implementation Note
Native code typically uses the
JNI Invocation API
to control launching and termination of the JVM. Such native code invokes the
JNI_CreateJavaVM
function to launch the JVM. Subsequently, the native code invokes the
DestroyJavaVM
function to await termination of that JVM. The DestroyJavaVM
function is responsible
for initiating the shutdown sequence when the number of live
non-daemon threads first drops to zero. When the shutdown sequence completes and the JVM
terminates, control is returned to the native code that invoked DestroyJavaVM
. This
behavior differs from the exit
or halt
methods. These methods
typically terminate the OS process hosting the JVM and do not interact with the JNI Invocation
API.
java.lang.Runtime#getRuntime()
Modifier and Type | Class and Description |
---|---|
public static class | Runtime.
A representation of a version string for an implementation of the Java SE Platform. |
private static class |
Modifier and Type | Field and Description |
---|---|
private static final Runtime | |
private static Runtime. |
Access | Constructor and Description |
---|---|
private |
Modifier and Type | Method and Description |
---|---|
public void | addShutdownHook(Thread
An initialized but unstarted hook)Thread objectRegisters a new virtual-machine shutdown hook. |
public native int | Returns: the maximum number of processors available to the virtual machine; never smaller than oneReturns the number of processors available to the Java virtual machine. |
public Process | Returns: A newProcess object for managing the subprocessa specified system command. command)
Deprecated
since 18. This method is error-prone and should not be used, the corresponding method
exec(String[]) or ProcessBuilder should be used instead.
Executes the specified string command in a separate process. |
public Process | Returns: A newProcess object for managing the subprocessa specified system command. command, String[] array of strings, each element of which
has environment variable settings in the format
name=value, or
envp)null if the subprocess should inherit
the environment of the current process.
Deprecated
since 18. This method is error-prone and should not be used, the corresponding method
exec(String[], String[]) or ProcessBuilder should be used instead.
Executes the specified string command in a separate process with the specified environment. |
public Process | Returns: A newProcess object for managing the subprocessa specified system command. command, String[] array of strings, each element of which
has environment variable settings in the format
name=value, or
envp, File null if the subprocess should inherit
the environment of the current process.the working directory of the subprocess, or
dir)null if the subprocess should inherit
the working directory of the current process.
Deprecated
since 18. This method is error-prone and should not be used, the corresponding method
exec(String[], String[], File) or ProcessBuilder should be used instead.
Executes the specified string command in a separate process with the specified environment and working directory. |
public Process | |
public Process | Returns: A newProcess object for managing the subprocessarray containing the command to call and
its arguments. cmdarray, String[] array of strings, each element of which
has environment variable settings in the format
name=value, or
envp)null if the subprocess should inherit
the environment of the current process.Executes the specified command and arguments in a separate process with the specified environment. |
public Process | Returns: A newProcess object for managing the subprocessarray containing the command to call and
its arguments. cmdarray, String[] array of strings, each element of which
has environment variable settings in the format
name=value, or
envp, File null if the subprocess should inherit
the environment of the current process.the working directory of the subprocess, or
dir)null if the subprocess should inherit
the working directory of the current process.Executes the specified command and arguments in a separate process with the specified environment and working directory. |
public void | exit(int
Termination status. By convention, a nonzero status code
indicates abnormal termination. status)Initiates the shutdown sequence of the Java Virtual Machine. |
public native long | Returns: an approximation to the total amount of memory currently available for future allocated objects, measured in bytes.Returns the amount of free memory in the Java Virtual Machine. |
public native void | |
public static Runtime | Returns: theRuntime object associated with the current
Java application.Returns the runtime object associated with the current Java application. |
public void | halt(int
Termination status. By convention, a nonzero status code
indicates abnormal termination. If the status)exit
(equivalently, System. ) method
has already been invoked then this status code
will override the status code passed to that method.Immediately terminates the Java Virtual Machine. |
public void | |
pack-priv void | |
public void | loadLibrary(String
the name of the library. libname)Loads the native library specified by the |
pack-priv void | |
public native long | Returns: the maximum amount of memory that the virtual machine will attempt to use, measured in bytesReturns the maximum amount of memory that the Java virtual machine will attempt to use. |
public boolean | Returns: true if the specified hook had previously been
registered and was successfully de-registered, false
otherwise.the hook to remove hook)De-registers a previously-registered virtual-machine shutdown hook. |
public void | runFinalization()
Deprecated
for removal since 18. Finalization has been deprecated for removal.
Runs the finalization methods of any objects pending finalization. |
public native long | Returns: the total amount of memory currently available for current and future objects, measured in bytes.Returns the total amount of memory in the Java virtual machine. |
public static Runtime. |