Package org.apache.commons.lang

# Class SystemUtils

java.lang.Object
org.apache.commons.lang.SystemUtils

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`.

#ThreadSafe#

Since:
  1.0
Version:
  $Id: SystemUtils.java 1056988 2011-01-09 17:58:53Z niallp $

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`AWT_TOOLKIT`
The `awt.toolkit` System Property.
`static final String`
`FILE_ENCODING`
The `file.encoding` System Property.
`static final String`
`FILE_SEPARATOR`
The `file.separator` System Property.
`static final boolean`
`IS_JAVA_1_1`
Is `true` if this is Java version 1.1 (also 1.1.x versions).
`static final boolean`
`IS_JAVA_1_2`
Is `true` if this is Java version 1.2 (also 1.2.x versions).
`static final boolean`
`IS_JAVA_1_3`
Is `true` if this is Java version 1.3 (also 1.3.x versions).
`static final boolean`
`IS_JAVA_1_4`
Is `true` if this is Java version 1.4 (also 1.4.x versions).
`static final boolean`
`IS_JAVA_1_5`
Is `true` if this is Java version 1.5 (also 1.5.x versions).
`static final boolean`
`IS_JAVA_1_6`
Is `true` if this is Java version 1.6 (also 1.6.x versions).
`static final boolean`
`IS_JAVA_1_7`
Is `true` if this is Java version 1.7 (also 1.7.x versions).
`static final boolean`
`IS_OS_AIX`
Is `true` if this is AIX.
`static final boolean`
`IS_OS_HP_UX`
Is `true` if this is HP-UX.
`static final boolean`
`IS_OS_IRIX`
Is `true` if this is Irix.
`static final boolean`
`IS_OS_LINUX`
Is `true` if this is Linux.
`static final boolean`
`IS_OS_MAC`
Is `true` if this is Mac.
`static final boolean`
`IS_OS_MAC_OSX`
Is `true` if this is Mac.
`static final boolean`
`IS_OS_OS2`
Is `true` if this is OS/2.
`static final boolean`
`IS_OS_SOLARIS`
Is `true` if this is Solaris.
`static final boolean`
`IS_OS_SUN_OS`
Is `true` if this is SunOS.
`static final boolean`
`IS_OS_UNIX`
Is `true` if this is a UNIX like system, as in any of AIX, HP-UX, Irix, Linux, MacOSX, Solaris or SUN OS.
`static final boolean`
`IS_OS_WINDOWS`
Is `true` if this is Windows.
`static final boolean`
`IS_OS_WINDOWS_2000`
Is `true` if this is Windows 2000.
`static final boolean`
`IS_OS_WINDOWS_7`
Is `true` if this is Windows 7.
`static final boolean`
`IS_OS_WINDOWS_95`
Is `true` if this is Windows 95.
`static final boolean`
`IS_OS_WINDOWS_98`
Is `true` if this is Windows 98.
`static final boolean`
`IS_OS_WINDOWS_ME`
Is `true` if this is Windows ME.
`static final boolean`
`IS_OS_WINDOWS_NT`
Is `true` if this is Windows NT.
`static final boolean`
`IS_OS_WINDOWS_VISTA`
Is `true` if this is Windows Vista.
`static final boolean`
`IS_OS_WINDOWS_XP`
Is `true` if this is Windows XP.
`static final String`
`JAVA_AWT_FONTS`
The `java.awt.fonts` System Property.
`static final String`
`JAVA_AWT_GRAPHICSENV`
The `java.awt.graphicsenv` System Property.
`static final String`
`JAVA_AWT_HEADLESS`
The `java.awt.headless` System Property.
`static final String`
`JAVA_AWT_PRINTERJOB`
The `java.awt.printerjob` System Property.
`static final String`
`JAVA_CLASS_PATH`
The `java.class.path` System Property.
`static final String`
`JAVA_CLASS_VERSION`
The `java.class.version` System Property.
`static final String`
`JAVA_COMPILER`
The `java.compiler` System Property.
`static final String`
`JAVA_ENDORSED_DIRS`
The `java.endorsed.dirs` System Property.
`static final String`
`JAVA_EXT_DIRS`
The `java.ext.dirs` System Property.
`static final String`
`JAVA_HOME`
The `java.home` System Property.
`static final String`
`JAVA_IO_TMPDIR`
The `java.io.tmpdir` System Property.
`static final String`
`JAVA_LIBRARY_PATH`
The `java.library.path` System Property.
`static final String`
`JAVA_RUNTIME_NAME`
The `java.runtime.name` System Property.
`static final String`
`JAVA_RUNTIME_VERSION`
The `java.runtime.version` System Property.
`static final String`
`JAVA_SPECIFICATION_NAME`
The `java.specification.name` System Property.
`static final String`
`JAVA_SPECIFICATION_VENDOR`
The `java.specification.vendor` System Property.
`static final String`
`JAVA_SPECIFICATION_VERSION`
The `java.specification.version` System Property.
`static final String`
`JAVA_UTIL_PREFS_PREFERENCES_FACTORY`
The `java.util.prefs.PreferencesFactory` System Property.
`static final String`
`JAVA_VENDOR`
The `java.vendor` System Property.
`static final String`
`JAVA_VENDOR_URL`
The `java.vendor.url` System Property.
`static final String`
`JAVA_VERSION`
The `java.version` System Property.
`static final float`
`JAVA_VERSION_FLOAT`
Gets the Java version as a `float`.
`static final int`
`JAVA_VERSION_INT`
Gets the Java version as an `int`.
`static final String`
`JAVA_VERSION_TRIMMED`
Gets the Java version as a `String` trimming leading letters.
`static final String`
`JAVA_VM_INFO`
The `java.vm.info` System Property.
`static final String`
`JAVA_VM_NAME`
The `java.vm.name` System Property.
`static final String`
`JAVA_VM_SPECIFICATION_NAME`
The `java.vm.specification.name` System Property.
`static final String`
`JAVA_VM_SPECIFICATION_VENDOR`
The `java.vm.specification.vendor` System Property.
`static final String`
`JAVA_VM_SPECIFICATION_VERSION`
The `java.vm.specification.version` System Property.
`static final String`
`JAVA_VM_VENDOR`
The `java.vm.vendor` System Property.
`static final String`
`JAVA_VM_VERSION`
The `java.vm.version` System Property.
`static final String`
`LINE_SEPARATOR`
The `line.separator` System Property.
`static final String`
`OS_ARCH`
The `os.arch` System Property.
`static final String`
`OS_NAME`
The `os.name` System Property.
`static final String`
`OS_VERSION`
The `os.version` System Property.
`static final String`
`PATH_SEPARATOR`
The `path.separator` System Property.
`static final String`
`USER_COUNTRY`
The `user.country` or `user.region` System Property.
`static final String`
`USER_DIR`
The `user.dir` System Property.
`static final String`
`USER_HOME`
The `user.home` System Property.
`static final String`
`USER_LANGUAGE`
The `user.language` System Property.
`static final String`
`USER_NAME`
The `user.name` System Property.
`static final String`
`USER_TIMEZONE`
The `user.timezone` System Property.

## Constructor Summary

Constructors
Constructor
Description
`SystemUtils()`
SystemUtils instances should NOT be constructed in standard programming.

## Method Summary

Modifier and Type
Method
Description
`static File`
`getJavaHome()`
Gets the Java home directory as a `File`.
`static File`
`getJavaIoTmpDir()`
Gets the Java IO temporary directory as a `File`.
`static float`
`getJavaVersion()`
Deprecated.
Use `JAVA_VERSION_FLOAT` instead.
`static File`
`getUserDir()`
Gets the user directory as a `File`.
`static File`
`getUserHome()`
Gets the user home directory as a `File`.
`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.
`static boolean`
`isJavaVersionAtLeast(int requiredVersion)`
Is the Java version at least the requested version.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### AWT_TOOLKIT

public static final String AWT_TOOLKIT

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

### FILE_ENCODING

public static final String FILE_ENCODING

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

### FILE_SEPARATOR

public static final String FILE_SEPARATOR

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

### JAVA_AWT_FONTS

public static final String JAVA_AWT_FONTS

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

### JAVA_AWT_GRAPHICSENV

public static final String JAVA_AWT_GRAPHICSENV

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

### JAVA_AWT_HEADLESS

public static final String JAVA_AWT_HEADLESS

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()`

### JAVA_AWT_PRINTERJOB

public static final String JAVA_AWT_PRINTERJOB

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

### JAVA_CLASS_PATH

public static final String JAVA_CLASS_PATH

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

### JAVA_CLASS_VERSION

public static final String JAVA_CLASS_VERSION

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

### JAVA_COMPILER

public static final String JAVA_COMPILER

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.

### JAVA_ENDORSED_DIRS

public static final String JAVA_ENDORSED_DIRS

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

### JAVA_EXT_DIRS

public static final String JAVA_EXT_DIRS

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

### JAVA_HOME

public static final String JAVA_HOME

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

### JAVA_IO_TMPDIR

public static final String JAVA_IO_TMPDIR

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

### JAVA_LIBRARY_PATH

public static final String JAVA_LIBRARY_PATH

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

### JAVA_RUNTIME_NAME

public static final String JAVA_RUNTIME_NAME

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

### JAVA_RUNTIME_VERSION

public static final String JAVA_RUNTIME_VERSION

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

### JAVA_SPECIFICATION_NAME

public static final String JAVA_SPECIFICATION_NAME

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

### JAVA_SPECIFICATION_VENDOR

public static final String JAVA_SPECIFICATION_VENDOR

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

### JAVA_SPECIFICATION_VERSION

public static final String JAVA_SPECIFICATION_VERSION

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

### JAVA_UTIL_PREFS_PREFERENCES_FACTORY

public static final String JAVA_UTIL_PREFS_PREFERENCES_FACTORY

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

### JAVA_VENDOR

public static final String JAVA_VENDOR

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

### JAVA_VENDOR_URL

public static final String JAVA_VENDOR_URL

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

### JAVA_VERSION

public static final String JAVA_VERSION

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

### JAVA_VM_INFO

public static final String JAVA_VM_INFO

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

### JAVA_VM_NAME

public static final String JAVA_VM_NAME

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

### JAVA_VM_SPECIFICATION_NAME

public static final String JAVA_VM_SPECIFICATION_NAME

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

### JAVA_VM_SPECIFICATION_VENDOR

public static final String JAVA_VM_SPECIFICATION_VENDOR

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

### JAVA_VM_SPECIFICATION_VERSION

public static final String JAVA_VM_SPECIFICATION_VERSION

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

### JAVA_VM_VENDOR

public static final String JAVA_VM_VENDOR

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

### JAVA_VM_VERSION

public static final String JAVA_VM_VERSION

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

### LINE_SEPARATOR

public static final String LINE_SEPARATOR

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

### OS_ARCH

public static final String OS_ARCH

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

### OS_NAME

public static final String OS_NAME

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

### OS_VERSION

public static final String OS_VERSION

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

### PATH_SEPARATOR

public static final String PATH_SEPARATOR

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

### USER_COUNTRY

public static final String USER_COUNTRY

The `user.country` or `user.region` System Property. User's country code, such as `GB`. First in Java 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

### USER_DIR

public static final String USER_DIR

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

### USER_HOME

public static final String USER_HOME

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

### USER_LANGUAGE

public static final String USER_LANGUAGE

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

### USER_NAME

public static final String USER_NAME

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

### USER_TIMEZONE

public static final String USER_TIMEZONE

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

### JAVA_VERSION_TRIMMED

public static final String JAVA_VERSION_TRIMMED

Gets the Java version as a `String` trimming leading letters.

The field will return `null` if `JAVA_VERSION` is `null`.

Since:
  2.1

### JAVA_VERSION_FLOAT

public static final float JAVA_VERSION_FLOAT

Gets the Java version as a `float`.

Example return values:

- `1.2f` for Java 1.2
- `1.31f` for Java 1.3.1

The field will return zero if `JAVA_VERSION` is `null`.

Since:
  2.0

### JAVA_VERSION_INT

public static final int JAVA_VERSION_INT

Gets the Java version as an `int`.

Example return values:

- `120` for Java 1.2
- `131` for Java 1.3.1

The field will return zero if `JAVA_VERSION` is `null`.

Since:
  2.0

### IS_JAVA_1_1

public static final boolean IS_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_JAVA_1_2

public static final boolean IS_JAVA_1_2

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_JAVA_1_3

public static final boolean IS_JAVA_1_3

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_JAVA_1_4

public static final boolean IS_JAVA_1_4

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_JAVA_1_5

public static final boolean IS_JAVA_1_5

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_JAVA_1_6

public static final boolean IS_JAVA_1_6

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_JAVA_1_7

public static final boolean IS_JAVA_1_7

Is `true` if this is Java version 1.7 (also 1.7.x versions).

The field will return `false` if `JAVA_VERSION` is `null`.

Since:
  2.5

### IS_OS_AIX

public static final boolean IS_OS_AIX

Is `true` if this is AIX.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_HP_UX

public static final boolean IS_OS_HP_UX

Is `true` if this is HP-UX.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_IRIX

public static final boolean IS_OS_IRIX

Is `true` if this is Irix.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_LINUX

public static final boolean IS_OS_LINUX

Is `true` if this is Linux.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_MAC

public static final boolean IS_OS_MAC

Is `true` if this is Mac.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_MAC_OSX

public static final boolean IS_OS_MAC_OSX

Is `true` if this is Mac.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_OS2

public static final boolean IS_OS_OS2

Is `true` if this is OS/2.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_SOLARIS

public static final boolean IS_OS_SOLARIS

Is `true` if this is Solaris.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_SUN_OS

public static final boolean IS_OS_SUN_OS

Is `true` if this is SunOS.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_UNIX

public static final boolean IS_OS_UNIX

Is `true` if this is a UNIX like 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_OS_WINDOWS

public static final boolean IS_OS_WINDOWS

Is `true` if this is Windows.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_2000

public static final boolean IS_OS_WINDOWS_2000

Is `true` if this is Windows 2000.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_95

public static final boolean IS_OS_WINDOWS_95

Is `true` if this is Windows 95.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_98

public static final boolean IS_OS_WINDOWS_98

Is `true` if this is Windows 98.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_ME

public static final boolean IS_OS_WINDOWS_ME

Is `true` if this is Windows ME.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_NT

public static final boolean IS_OS_WINDOWS_NT

Is `true` if this is Windows NT.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_XP

public static final boolean IS_OS_WINDOWS_XP

Is `true` if this is Windows XP.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.0

### IS_OS_WINDOWS_VISTA

public static final boolean IS_OS_WINDOWS_VISTA

Is `true` if this is Windows Vista.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.4

### IS_OS_WINDOWS_7

public static final boolean IS_OS_WINDOWS_7

Is `true` if this is Windows 7.

The field will return `false` if `OS_NAME` is `null`.

Since:
  2.5

## Constructor Details

### SystemUtils

public SystemUtils()

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.

## Method Details

### getJavaHome

public static File getJavaHome()

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)`

### getJavaIoTmpDir

public static File getJavaIoTmpDir()

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)`

### getJavaVersion

public static float getJavaVersion()
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

### getUserDir

public static File getUserDir()

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)`

### getUserHome

public static File getUserHome()

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)`

### isJavaAwtHeadless

public static boolean isJavaAwtHeadless()
Returns whether the `JAVA_AWT_HEADLESS` value is `true`.

Returns:
  `true` if `JAVA_AWT_HEADLESS` is `"true"`, `false` otherwise.
Since:
  2.1, Java 1.4
See Also:
  - `JAVA_AWT_HEADLESS`

### isJavaVersionAtLeast

public static boolean isJavaVersionAtLeast(float requiredVersion)

Is the Java version at least the requested version.

Example input:

- `1.2f` to test for Java 1.2
- `1.31f` to test for Java 1.3.1

Parameters:
  `requiredVersion` - the required version, for example 1.31f
Returns:
  `true` if the actual version is equal or greater than the required version

### isJavaVersionAtLeast

public static boolean isJavaVersionAtLeast(int requiredVersion)

Is the Java version at least the requested version.

Example input:

- `120` to test for Java 1.2 or greater
- `131` to test for Java 1.3.1 or greater

Parameters:
  `requiredVersion` - the required version, for example 131
Returns:
  `true` if the actual version is equal or greater than the required version
Since:
  2.0