org.apache.commons.lang
public class SystemUtils extends Object
Helpers for java.lang.System
.
If a system property cannot be read due to security restrictions,
the corresponding field in this class will be set to null
and a message will be written to System.err
.
Since: 1.0
Version: $Id: SystemUtils.java 437554 2006-08-28 06:21:41Z bayard $
Field Summary | |
---|---|
static String | AWT_TOOLKIT The Holds a class name, on Windows XP this is On platforms without a GUI, this value is Defaults to This value is initialized when the class is loaded. |
static String | FILE_ENCODING The File encoding, such as Defaults to This value is initialized when the class is loaded. |
static String | FILE_SEPARATOR The |
static boolean | IS_JAVA_1_1 Is The field will return |
static boolean | IS_JAVA_1_2 Is The field will return |
static boolean | IS_JAVA_1_3 Is The field will return |
static boolean | IS_JAVA_1_4 Is The field will return |
static boolean | IS_JAVA_1_5 Is The field will return |
static boolean | IS_JAVA_1_6 Is The field will return |
static boolean | IS_OS_AIX Is The field will return |
static boolean | IS_OS_HP_UX Is The field will return |
static boolean | IS_OS_IRIX Is The field will return |
static boolean | IS_OS_LINUX Is The field will return |
static boolean | IS_OS_MAC Is The field will return |
static boolean | IS_OS_MAC_OSX Is The field will return |
static boolean | IS_OS_OS2 Is The field will return |
static boolean | IS_OS_SOLARIS Is The field will return |
static boolean | IS_OS_SUN_OS Is The field will return |
static boolean | IS_OS_UNIX Is The field will return |
static boolean | IS_OS_WINDOWS Is The field will return |
static boolean | IS_OS_WINDOWS_2000 Is The field will return |
static boolean | IS_OS_WINDOWS_95 Is The field will return |
static boolean | IS_OS_WINDOWS_98 Is The field will return |
static boolean | IS_OS_WINDOWS_ME Is The field will return |
static boolean | IS_OS_WINDOWS_NT Is The field will return |
static boolean | IS_OS_WINDOWS_XP Is The field will return |
static String | JAVA_AWT_FONTS The Defaults to This value is initialized when the class is loaded. |
static String | JAVA_AWT_GRAPHICSENV The Defaults to This value is initialized when the class is loaded. |
static String | JAVA_AWT_HEADLESS
The |
static String | JAVA_AWT_PRINTERJOB The Defaults to This value is initialized when the class is loaded. |
static String | JAVA_CLASS_PATH The |
static String | JAVA_CLASS_VERSION The |
static String | JAVA_COMPILER The |
static String | JAVA_ENDORSED_DIRS The |
static String | JAVA_EXT_DIRS The |
static String | JAVA_HOME The |
static String | JAVA_IO_TMPDIR The |
static String | JAVA_LIBRARY_PATH The |
static String | JAVA_RUNTIME_NAME The |
static String | JAVA_RUNTIME_VERSION The |
static String | JAVA_SPECIFICATION_NAME The |
static String | JAVA_SPECIFICATION_VENDOR The |
static String | JAVA_SPECIFICATION_VERSION The |
static String | JAVA_UTIL_PREFS_PREFERENCES_FACTORY The |
static String | JAVA_VENDOR The |
static String | JAVA_VENDOR_URL The |
static String | JAVA_VERSION The |
static float | JAVA_VERSION_FLOAT Gets the Java version as a Example return values:
The field will return zero if JAVA_VERSION is |
static int | JAVA_VERSION_INT Gets the Java version as an Example return values:
The field will return zero if JAVA_VERSION is |
static String | JAVA_VERSION_TRIMMED Gets the Java version as a The field will return |
static String | JAVA_VM_INFO The |
static String | JAVA_VM_NAME The |
static String | JAVA_VM_SPECIFICATION_NAME The |
static String | JAVA_VM_SPECIFICATION_VENDOR The |
static String | JAVA_VM_SPECIFICATION_VERSION The |
static String | JAVA_VM_VENDOR The |
static String | JAVA_VM_VERSION The |
static String | LINE_SEPARATOR The |
static String | OS_ARCH The |
static String | OS_NAME The |
static String | OS_VERSION The |
static String | PATH_SEPARATOR The |
static String | USER_COUNTRY The |
static String | USER_DIR The |
static String | USER_HOME The |
static String | USER_LANGUAGE The |
static String | USER_NAME The |
static String | USER_TIMEZONE The |
Constructor Summary | |
---|---|
SystemUtils() SystemUtils instances should NOT be constructed in standard programming. |
Method Summary | |
---|---|
static File | getJavaHome() Gets the Java home directory as a |
static File | getJavaIoTmpDir() Gets the Java IO temporary directory as a |
static float | getJavaVersion() Gets the Java version number as a Example return values:
|
static File | getUserDir() Gets the user directory as a |
static File | getUserHome() Gets the user home directory as a |
static boolean | isJavaAwtHeadless()
Returns whether the JAVA_AWT_HEADLESS value is true .
|
static boolean | isJavaVersionAtLeast(float requiredVersion) Is the Java version at least the requested version. Example input:
|
static boolean | isJavaVersionAtLeast(int requiredVersion) Is the Java version at least the requested version. Example input:
|
The awt.toolkit
System Property.
Holds a class name, on Windows XP this is sun.awt.windows.WToolkit
.
On platforms without a GUI, this value is null
.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1
The file.encoding
System Property.
File encoding, such as Cp1252
.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.2
The file.separator
System Property.
File separator ("/"
on UNIX).
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
Is true
if this is Java version 1.1 (also 1.1.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is Java version 1.2 (also 1.2.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is Java version 1.3 (also 1.3.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is Java version 1.4 (also 1.4.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is Java version 1.5 (also 1.5.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is Java version 1.6 (also 1.6.x versions).
The field will return false
if JAVA_VERSION is
null
.
Is true
if this is AIX.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is HP-UX.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Irix.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Linux.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Mac.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Mac.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is OS/2.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Solaris.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is SunOS.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is a POSIX compilant system,
as in any of AIX, HP-UX, Irix, Linux, MacOSX, Solaris or SUN OS.
The field will return false
if OS_NAME
is
null
.
Since: 2.1
Is true
if this is Windows.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows 2000.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows 95.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows 98.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows ME.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows NT.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
Is true
if this is Windows XP.
The field will return false
if OS_NAME
is
null
.
Since: 2.0
The java.awt.fonts
System Property.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1
The java.awt.graphicsenv
System Property.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1
The java.awt.headless
System Property.
The value of this property is the String "true"
or "false"
.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1 Java 1.4
See Also: isJavaAwtHeadless
The java.awt.printerjob
System Property.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1
The java.class.path
System Property. Java class path.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The java.class.version
System Property.
Java class format version number.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The java.compiler
System Property. Name of JIT compiler to use.
First in JDK version 1.2. Not used in Sun JDKs after 1.2.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2. Not used in Sun versions after 1.2.
The java.endorsed.dirs
System Property. Path of endorsed directory
or directories.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.4
The java.ext.dirs
System Property. Path of extension directory
or directories.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.3
The java.home
System Property. Java installation directory.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The java.io.tmpdir
System Property. Default temp file path.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.library.path
System Property. List of paths to search
when loading libraries.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.runtime.name
System Property. Java Runtime Environment
name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.3
The java.runtime.version
System Property. Java Runtime Environment
version.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.3
The java.specification.name
System Property. Java Runtime Environment
specification name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.specification.vendor
System Property. Java Runtime Environment
specification vendor.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.specification.version
System Property. Java Runtime Environment
specification version.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.3
The java.util.prefs.PreferencesFactory
System Property. A class name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1 Java 1.4
The java.vendor
System Property. Java vendor-specific string.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The java.vendor.url
System Property. Java vendor URL.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The java.version
System Property. Java version number.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
Gets the Java version as a float
.
Example return values:
1.2f
for JDK 1.2
1.31f
for JDK 1.3.1
The field will return zero if JAVA_VERSION is null
.
Since: 2.0
Gets the Java version as an int
.
Example return values:
120
for JDK 1.2
131
for JDK 1.3.1
The field will return zero if JAVA_VERSION is null
.
Since: 2.0
Gets the Java version as a String
trimming leading letters.
The field will return null
if JAVA_VERSION is null
.
Since: 2.1
The java.vm.info
System Property. Java Virtual Machine implementation
info.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.2
The java.vm.name
System Property. Java Virtual Machine implementation
name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.vm.specification.name
System Property. Java Virtual Machine
specification name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.vm.specification.vendor
System Property. Java Virtual
Machine specification vendor.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.vm.specification.version
System Property. Java Virtual Machine
specification version.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.vm.vendor
System Property. Java Virtual Machine implementation
vendor.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The java.vm.version
System Property. Java Virtual Machine
implementation version.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.2
The line.separator
System Property. Line separator
("\n"
on UNIX).
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The os.arch
System Property. Operating system architecture.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The os.name
System Property. Operating system name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The os.version
System Property. Operating system version.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The path.separator
System Property. Path separator
(":"
on UNIX).
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The user.country
or user.region
System Property.
User's country code, such as GB
. First in JDK version 1.2 as
user.region
. Renamed to user.country
in 1.4
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.2
The user.dir
System Property. User's current working
directory.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The user.home
System Property. User's home directory.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The user.language
System Property. User's language code,
such as "en"
.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.0 Java 1.2
The user.name
System Property. User's account name.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: Java 1.1
The user.timezone
System Property.
For example: "America/Los_Angeles"
.
Defaults to null
if the runtime does not have
security access to read this property or the property does not exist.
This value is initialized when the class is loaded. If System#setProperty(String,String) or System#setProperties(java.util.Properties) is called after this class is loaded, the value will be out of sync with that System property.
Since: 2.1
SystemUtils instances should NOT be constructed in standard
programming. Instead, the class should be used as
SystemUtils.FILE_SEPARATOR
.
This constructor is public to permit tools that require a JavaBean instance to operate.
Gets the Java home directory as a File
.
Returns: a directory
Throws: SecurityException if a security manager exists and its
checkPropertyAccess
method doesn't allow
access to the specified system property.
Since: 2.1
See Also: System#getProperty(String)
Gets the Java IO temporary directory as a File
.
Returns: a directory
Throws: SecurityException if a security manager exists and its
checkPropertyAccess
method doesn't allow
access to the specified system property.
Since: 2.1
See Also: System#getProperty(String)
Deprecated: Use JAVA_VERSION_FLOAT instead. Method will be removed in Commons Lang 3.0.
Gets the Java version number as a float
.
Example return values:
1.2f
for JDK 1.2
1.31f
for JDK 1.3.1
Returns: the version, for example 1.31f for JDK 1.3.1
Gets the user directory as a File
.
Returns: a directory
Throws: SecurityException if a security manager exists and its
checkPropertyAccess
method doesn't allow
access to the specified system property.
Since: 2.1
See Also: System#getProperty(String)
Gets the user home directory as a File
.
Returns: a directory
Throws: SecurityException if a security manager exists and its
checkPropertyAccess
method doesn't allow
access to the specified system property.
Since: 2.1
See Also: System#getProperty(String)
true
.
Returns: true
if JAVA_AWT_HEADLESS
is "true"
,
false
otherwise.
Since: 2.1 Java 1.4
See Also: JAVA_AWT_HEADLESS
Is the Java version at least the requested version.
Example input:
1.2f
to test for JDK 1.21.31f
to test for JDK 1.3.1Parameters: requiredVersion the required version, for example 1.31f
Returns: true
if the actual version is equal or greater
than the required version
Is the Java version at least the requested version.
Example input:
120
to test for JDK 1.2 or greater131
to test for JDK 1.3.1 or greaterParameters: requiredVersion the required version, for example 131
Returns: true
if the actual version is equal or greater
than the required version
Since: 2.0