public final class

System

extends Object
java.lang.Object
   ↳ java.lang.System

Class Overview

Provides access to system-related information and resources including standard input and output. Enables clients to dynamically load native libraries. All methods of this class are accessed in a static way and the class itself can not be instantiated.

See Also

Summary

Constants
PrintStream err Default error output stream.
InputStream in Default input stream.
PrintStream out Default output stream.
Public Methods
static void arraycopy(Object src, int srcPos, Object dst, int dstPos, int length)
Copies length elements from the array src, starting at offset srcPos, into the array dst, starting at offset dstPos.
static String clearProperty(String key)
Removes a specific system property.
static Console console()
Returns the Console associated with this VM, or null.
static long currentTimeMillis()
Returns the current system time in milliseconds since January 1, 1970 00:00:00 UTC.
static void exit(int code)
Causes the virtual machine to stop running and the program to exit.
static void gc()
Indicates to the virtual machine that it would be a good time to run the garbage collector.
static Properties getProperties()
Returns the system properties.
static String getProperty(String propertyName)
Returns the value of a particular system property or null if no such property exists.
static String getProperty(String prop, String defaultValue)
Returns the value of a particular system property.
static SecurityManager getSecurityManager()
Returns null.
static String getenv(String name)
Returns the value of the environment variable with the given name var.
static Map<StringString> getenv()
Returns an unmodifiable map of all available environment variables.
static int identityHashCode(Object anObject)
Returns an integer hash code for the parameter.
static Channel inheritedChannel()
Returns the inherited channel from the creator of the current virtual machine.
static void load(String pathName)
Loads and links the dynamic library that is identified through the specified path.
static void loadLibrary(String libName)
Loads and links the library with the specified name.
static String mapLibraryName(String userLibName)
Returns the platform specific file name format for the shared library named by the argument.
static long nanoTime()
Returns the current timestamp of the most precise timer available on the local system.
static void runFinalization()
Provides a hint to the virtual machine that it would be useful to attempt to perform any outstanding object finalization.
static void runFinalizersOnExit(boolean flag)
This method is deprecated. this method is unsafe.
static void setErr(PrintStream newErr)
Sets the standard error output stream to the given user defined output stream.
static void setIn(InputStream newIn)
Sets the standard input stream to the given user defined input stream.
static void setOut(PrintStream newOut)
Sets the standard output stream to the given user defined output stream.
static void setProperties(Properties p)
Sets all system properties.
static String setProperty(String prop, String value)
Sets the value of a particular system property.
static void setSecurityManager(SecurityManager sm)
Throws SecurityException.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final PrintStream err

Since: API Level 1

Default error output stream.

public static final InputStream in

Since: API Level 1

Default input stream.

public static final PrintStream out

Since: API Level 1

Default output stream.

Public Methods

public static void arraycopy (Object src, int srcPos, Object dst, int dstPos, int length)

Since: API Level 1

Copies length elements from the array src, starting at offset srcPos, into the array dst, starting at offset dstPos.

Parameters
src the source array to copy the content.
srcPos the starting index of the content in src.
dst the destination array to copy the data into.
dstPos the starting index for the copied content in dst.
length the number of elements to be copied.

public static String clearProperty (String key)

Since: API Level 1

Removes a specific system property.

Parameters
key the name of the system property to be removed.
Returns
  • the property value or null if the property didn't exist.
Throws
NullPointerException if the argument key is null.
IllegalArgumentException if the argument key is empty.
SecurityException if a security manager exists and write access to the specified property is not allowed.

public static Console console ()

Since: API Level 9

Returns the Console associated with this VM, or null. Not all VMs will have an associated console. A console is typically only available for programs run from the command line.

public static long currentTimeMillis ()

Since: API Level 1

Returns the current system time in milliseconds since January 1, 1970 00:00:00 UTC. This method shouldn't be used for measuring timeouts or other elapsed time measurements, as changing the system time can affect the results.

Returns
  • the local system time in milliseconds.

public static void exit (int code)

Since: API Level 1

Causes the virtual machine to stop running and the program to exit. If runFinalizersOnExit(boolean) has been previously invoked with a true argument, then all objects will be properly garbage-collected and finalized first.

Parameters
code the return code.
Throws
SecurityException if the running thread has not enough permission to exit the virtual machine.
See Also

public static void gc ()

Since: API Level 1

Indicates to the virtual machine that it would be a good time to run the garbage collector. Note that this is a hint only. There is no guarantee that the garbage collector will actually be run.

public static Properties getProperties ()

Since: API Level 1

Returns the system properties. Note that this is not a copy, so that changes made to the returned Properties object will be reflected in subsequent calls to getProperty and getProperties.

Returns
  • the system properties.
Throws
SecurityException if a SecurityManager is installed and its checkPropertiesAccess() method does not allow the operation.

public static String getProperty (String propertyName)

Since: API Level 1

Returns the value of a particular system property or null if no such property exists.

The following properties are always provided by the virtual machine:

Name Meaning Example
file.separator separator /
java.class.path System class path .
java.class.version Maximum supported .class file version 46.0
java.compiler (Not useful on Android) Empty
java.ext.dirs (Not useful on Android) Empty
java.home Location of the VM on the file system /system
java.io.tmpdir See createTempFile(String, String) /sdcard
java.library.path Search path for JNI libraries /system/lib
java.vendor Human-readable VM vendor The Android Project
java.vendor.url URL for VM vendor's web site http://www.android.com/
java.version (Not useful on Android) 0
java.specification.version VM libraries version 0.9
java.specification.vendor VM libraries vendor The Android Project
java.specification.name VM libraries name Dalvik Core Library
java.vm.version VM implementation version 1.2.0
java.vm.vendor VM implementation vendor The Android Project
java.vm.name VM implementation name Dalvik
java.vm.specification.version VM specification version 0.9
java.vm.specification.vendor VM specification vendor The Android Project
java.vm.specification.name VM specification name Dalvik Virtual Machine Specification
line.separator Default line separator \n
os.arch OS architecture armv7l
os.name OS (kernel) name Linux
os.version OS (kernel) version 2.6.32.9-g103d848
path.separator pathSeparator :
user.dir Base of non-absolute paths /
user.home (Not useful on Android) Empty
user.name (Not useful on Android) Empty

Parameters
propertyName the name of the system property to look up.
Returns
  • the value of the specified system property or null if the property doesn't exist.
Throws
SecurityException if a SecurityManager is installed and its checkPropertyAccess() method does not allow the operation.

public static String getProperty (String prop, String defaultValue)

Since: API Level 1

Returns the value of a particular system property. The defaultValue will be returned if no such property has been found.

Parameters
prop the name of the system property to look up.
defaultValue the return value if the system property with the given name does not exist.
Returns
  • the value of the specified system property or the defaultValue if the property does not exist.
Throws
SecurityException if a SecurityManager is installed and its checkPropertyAccess() method does not allow the operation.

public static SecurityManager getSecurityManager ()

Since: API Level 1

Returns null. Android does not use SecurityManager. This method is only provided for source compatibility.

Returns
  • null

public static String getenv (String name)

Since: API Level 1

Returns the value of the environment variable with the given name var.

Parameters
name the name of the environment variable.
Returns
  • the value of the specified environment variable or null if no variable exists with the given name.
Throws
SecurityException if a SecurityManager is installed and its checkPermission() method does not allow the querying of single environment variables.

public static Map<StringString> getenv ()

Since: API Level 1

Returns an unmodifiable map of all available environment variables.

Returns
  • the map representing all environment variables.
Throws
SecurityException if a SecurityManager is installed and its checkPermission() method does not allow the querying of all environment variables.

public static int identityHashCode (Object anObject)

Since: API Level 1

Returns an integer hash code for the parameter. The hash code returned is the same one that would be returned by the method java.lang.Object.hashCode(), whether or not the object's class has overridden hashCode(). The hash code for null is 0.

Parameters
anObject the object to calculate the hash code.
Returns
  • the hash code for the given object.
See Also

public static Channel inheritedChannel ()

Since: API Level 1

Returns the inherited channel from the creator of the current virtual machine.

Returns
  • the inherited Channel or null if none exists.
Throws
IOException if an I/O error occurred.

public static void load (String pathName)

Since: API Level 1

Loads and links the dynamic library that is identified through the specified path. This method is similar to loadLibrary(String), but it accepts a full path specification whereas loadLibrary just accepts the name of the library to load.

Parameters
pathName the path of the file to be loaded.
Throws
SecurityException if the library was not allowed to be loaded.

public static void loadLibrary (String libName)

Since: API Level 1

Loads and links the library with the specified name. The mapping of the specified library name to the full path for loading the library is implementation-dependent.

Parameters
libName the name of the library to load.
Throws
UnsatisfiedLinkError if the library could not be loaded.
SecurityException if the library was not allowed to be loaded.

public static String mapLibraryName (String userLibName)

Since: API Level 1

Returns the platform specific file name format for the shared library named by the argument.

Parameters
userLibName the name of the library to look up.
Returns
  • the platform specific filename for the library.

public static long nanoTime ()

Since: API Level 1

Returns the current timestamp of the most precise timer available on the local system. This timestamp can only be used to measure an elapsed period by comparing it against another timestamp. It cannot be used as a very exact system time expression.

Returns
  • the current timestamp in nanoseconds.

public static void runFinalization ()

Since: API Level 1

Provides a hint to the virtual machine that it would be useful to attempt to perform any outstanding object finalization.

public static void runFinalizersOnExit (boolean flag)

Since: API Level 1

This method is deprecated.
this method is unsafe.

Ensures that, when the virtual machine is about to exit, all objects are finalized. Note that all finalization which occurs when the system is exiting is performed after all running threads have been terminated.

Parameters
flag the flag determines if finalization on exit is enabled.

public static void setErr (PrintStream newErr)

Since: API Level 1

Sets the standard error output stream to the given user defined output stream.

Parameters
newErr the user defined output stream to set as the standard error output stream.
Throws
SecurityException if a SecurityManager is installed and its checkPermission() method does not allow the change of the stream.

public static void setIn (InputStream newIn)

Since: API Level 1

Sets the standard input stream to the given user defined input stream.

Parameters
newIn the user defined input stream to set as the standard input stream.
Throws
SecurityException if a SecurityManager is installed and its checkPermission() method does not allow the change of the stream.

public static void setOut (PrintStream newOut)

Since: API Level 1

Sets the standard output stream to the given user defined output stream.

Parameters
newOut the user defined output stream to set as the standard output stream.
Throws
SecurityException if a SecurityManager is installed and its checkPermission() method does not allow the change of the stream.

public static void setProperties (Properties p)

Since: API Level 1

Sets all system properties.

Parameters
p the new system property.
Throws
SecurityException if a SecurityManager is installed and its checkPropertiesAccess() method does not allow the operation.

public static String setProperty (String prop, String value)

Since: API Level 1

Sets the value of a particular system property.

Parameters
prop the name of the system property to be changed.
value the value to associate with the given property prop.
Returns
  • the old value of the property or null if the property didn't exist.
Throws
SecurityException if a security manager exists and write access to the specified property is not allowed.

public static void setSecurityManager (SecurityManager sm)

Since: API Level 1

Throws SecurityException.

Security managers do not provide a secure environment for executing untrusted code and are unsupported on Android. Untrusted code cannot be safely isolated within a single VM on Android.

Parameters
sm a security manager
Throws
SecurityException always