This class defines a platform-independent
interface to system facilities, including system properties and
system input and output streams. All methods and variables of this
class are static, and the class cannot be instantiated. Because the
methods defined by this class are low-level system methods, most
require special permissions and cannot be executed by untrusted code.
getProperty( ) looks
up a named property on the system properties list,
returning the optionally specified default value if no property
definition is found. getProperties(
) returns the entire properties list.
setProperties( ) sets
a Properties object on the properties list. In
Java 1.2 and later, setProperty(
) sets
the value of a system property. In Java 5.0, you can clear a property
setting with clearProperty(
) . The following table lists system
properties that are always defined. Untrusted code may be unable to
read some or all of these properties. Additional properties can be
defined using the -D option when invoking the Java
interpreter.
Property name |
Description |
---|
file.separator |
Platform directory separator character |
path.separator |
Platform path separator character |
line.separator |
Platform line separator character(s) |
user.name |
Current user s account name |
user.home |
Home directory of current user |
user.dir |
The current working directory |
java.class.path |
Where classes are loaded from |
java.class.version |
Version of the Java class file format |
java.compiler |
The name of the just-in-time compiler |
java.ext.dirs |
Path to directories that hold extensions |
java.home |
The directory Java is installed in |
java.io.tmpdir |
The directory that temporary files are written to |
java.library.path |
Directories to search for native libraries |
java.specification.version |
Version of the Java API specification |
java.specification.vendor |
Vendor of the Java API specification |
java.specification.name |
Name of the Java API specification |
java.version |
Version of the Java API implementation |
java.vendor |
Vendor of this Java API implementation |
java.vendor.url |
URL of the vendor of this Java API implementation |
java.vm.specification.version |
Version of the Java VM specification |
java.vm.specification.vendor |
Vendor of the Java VM specification |
java.vm.specification.name |
Name of the Java VM specification |
java.vm.version |
Version of the Java VM implementation |
java.vm.vendor |
Vendor of the Java VM implementation |
java.vm.name |
Name of the Java VM implementation |
os.name |
Name of the host operating system |
os.arch |
Host operating system architecture |
os.version |
Version of the host operating system |
The
in
, out, and
err
fields hold the standard
input, output, and error streams for the system. These fields are
frequently used in calls such as System.out.println(
). In Java 1.1, setIn( ),
setOut( ), and setErr( ) allow
these streams to be redirected.
System
also defines various other useful static methods. exit(
) causes the Java VM to exit. arraycopy(
) efficiently copies an array or a portion of an array into
a destination array. currentTimeMillis(
)
returns the current time in milliseconds since midnight GMT, January
1, 1970 GMT. In
Java 5.0, nanoTime( )
returns a time in nanoseconds. Unlike currentTimeMillis(
) this time is not relative to any fixed point and so is
useful only for elapsed time computations.
getenv( )
returns the value of a platform-dependent environment variable, or
(in Java 5.0) returns a Map of all environment
variables. The one-argument version of getenv( )
was previously deprecated but has been restored in Java 5.0.
identityHashCode(
) computes the hashcode for an object in
the same way that the default Object.hashCode( )
method does. It does this regardless of whether or how the
hashCode( ) method has been overridden.
In
Java 5.0, inheritedChannel(
) returns a java.nio.channels.Channel
object that represents a network connection passed to the Java
process by the invoking process. This allows Java programs to be used
with the Unix
inetd daemon, for example.
load( )
and loadLibrary( )
can read libraries of native code
into the system. mapLibraryName(
)
converts a system-independent library name into a system-dependent
library filename. Finally, getSecurityManager(
)
and
setSecurityManager( ) get and set the system
SecurityManager object responsible for the system
security policy.
See also Runtime, which defines several other
methods that provide low-level access to system facilities.
public final class
System {
// No Constructor
// Public Constants
public static final java.io.PrintStream
err ;
public static final java.io.InputStream
in ;
public static final java.io.PrintStream
out ;
// Public Class Methods
public static void
arraycopy (Object
src , int
srcPos , Object
dest , int
destPos ,
int
length ); native
5.0 public static String
clearProperty (String
key );
public static long
currentTimeMillis ( ); native
public static void
exit (int
status );
public static void
gc ( );
5.0 public static java.util.Map<String,String>
getenv ( );
public static String
getenv (String
name );
public static java.util.Properties
getProperties ( );
public static String
getProperty (String
key );
public static String
getProperty (String
key , String
def );
public static SecurityManager
getSecurityManager ( );
1.1 public static int
identityHashCode (Object
x ); native
5.0 public static java.nio.channels.Channel
inheritedChannel ( ) throws java.io.IOException;
public static void
load (String
filename );
public static void
loadLibrary (String
libname );
1.2 public static String
mapLibraryName (String
libname ); native
5.0 public static long
nanoTime ( ); native
public static void
runFinalization ( );
1.1 public static void
setErr (java.io.PrintStream
err );
1.1 public static void
setIn (java.io.InputStream
in );
1.1 public static void
setOut (java.io.PrintStream
out );
public static void
setProperties (java.util.Properties
props );
1.2 public static String
setProperty (String
key , String
value );
public static void
setSecurityManager (SecurityManager
s );
// Deprecated Public Methods
1.1# public static void
runFinalizersOnExit (boolean
value );
}