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 Details

    • JAVA_VERSION_TRIM_SIZE

      private static final int JAVA_VERSION_TRIM_SIZE
      See Also:
    • OS_NAME_WINDOWS_PREFIX

      private static final String OS_NAME_WINDOWS_PREFIX
      The prefix String for all Windows OS.
      See Also:
    • USER_HOME_KEY

      private static final String USER_HOME_KEY
      The System property key for the user home directory.
      See Also:
    • USER_DIR_KEY

      private static final String USER_DIR_KEY
      The System property key for the user directory.
      See Also:
    • JAVA_IO_TMPDIR_KEY

      private static final String JAVA_IO_TMPDIR_KEY
      The System property key for the Java IO temporary directory.
      See Also:
    • JAVA_HOME_KEY

      private static final String JAVA_HOME_KEY
      The System property key for the Java home directory.
      See Also:
    • 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:
    • 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:
    • 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:
    • 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
    • getJavaVersionAsFloat

      private static float getJavaVersionAsFloat()

      Gets the Java version number as a float.

      Example return values:

      • 1.2f for Java 1.2
      • 1.31f for Java 1.3.1
      • 1.6f for Java 1.6.0_20

      Patch releases are not reported.

      Returns:
      the version, for example 1.31f for Java 1.3.1
    • getJavaVersionAsInt

      private static int getJavaVersionAsInt()

      Gets the Java version number as an int.

      Example return values:

      • 120 for Java 1.2
      • 131 for Java 1.3.1
      • 160 for Java 1.6.0_20

      Patch releases are not reported.

      Returns:
      the version, for example 131 for Java 1.3.1
    • getJavaVersionMatches

      private static boolean getJavaVersionMatches(String versionPrefix)

      Decides if the Java version matches.

      Parameters:
      versionPrefix - the prefix for the java version
      Returns:
      true if matches, or false if not or can't determine
    • getJavaVersionTrimmed

      private static String getJavaVersionTrimmed()
      Trims the text of the java version to start with numbers.
      Returns:
      the trimmed java version
    • getOSMatches

      private static boolean getOSMatches(String osNamePrefix, String osVersionPrefix)
      Decides if the operating system matches.
      Parameters:
      osNamePrefix - the prefix for the os name
      osVersionPrefix - the prefix for the version
      Returns:
      true if matches, or false if not or can't determine
    • getOSMatchesName

      private static boolean getOSMatchesName(String osNamePrefix)
      Decides if the operating system matches.
      Parameters:
      osNamePrefix - the prefix for the os name
      Returns:
      true if matches, or false if not or can't determine
    • getSystemProperty

      private static String getSystemProperty(String property)

      Gets a System property, defaulting to null if the property cannot be read.

      If a SecurityException is caught, the return value is null and a message is written to System.err.

      Parameters:
      property - the system property name
      Returns:
      the system property value or null if a security problem occurs
    • 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:
    • 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:
    • 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:
    • 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
    • isJavaVersionMatch

      static boolean isJavaVersionMatch(String version, String versionPrefix)

      Decides if the Java version matches.

      This method is package private instead of private to support unit test invocation.

      Parameters:
      version - the actual Java version
      versionPrefix - the prefix for the expected Java version
      Returns:
      true if matches, or false if not or can't determine
    • isOSMatch

      static boolean isOSMatch(String osName, String osVersion, String osNamePrefix, String osVersionPrefix)
      Decides if the operating system matches.

      This method is package private instead of private to support unit test invocation.

      Parameters:
      osName - the actual OS name
      osVersion - the actual OS version
      osNamePrefix - the prefix for the expected OS name
      osVersionPrefix - the prefix for the expected OS version
      Returns:
      true if matches, or false if not or can't determine
    • isOSNameMatch

      static boolean isOSNameMatch(String osName, String osNamePrefix)
      Decides if the operating system matches.

      This method is package private instead of private to support unit test invocation.

      Parameters:
      osName - the actual OS name
      osNamePrefix - the prefix for the expected OS name
      Returns:
      true if matches, or false if not or can't determine
    • toJavaVersionFloat

      static float toJavaVersionFloat(String version)

      Converts the given Java version string to a float.

      Example return values:

      • 1.2f for Java 1.2
      • 1.31f for Java 1.3.1
      • 1.6f for Java 1.6.0_20

      Patch releases are not reported.

      This method is package private instead of private to support unit test invocation.

      Parameters:
      version - The string version
      Returns:
      the version, for example 1.31f for Java 1.3.1
    • toJavaVersionInt

      static int toJavaVersionInt(String version)

      Converts the given Java version string to an int.

      Example return values:

      • 120 for Java 1.2
      • 131 for Java 1.3.1
      • 160 for Java 1.6.0_20

      Patch releases are not reported.

      This method is package private instead of private to support unit test invocation.

      Parameters:
      version - The string version
      Returns:
      the version, for example 131 for Java 1.3.1
    • toJavaVersionIntArray

      static int[] toJavaVersionIntArray(String version)

      Converts the given Java version string to an int[] of maximum size 3.

      Example return values:

      • [1, 2, 0] for Java 1.2
      • [1, 3, 1] for Java 1.3.1
      • [1, 5, 0] for Java 1.5.0_21

      This method is package private instead of private to support unit test invocation.

      Parameters:
      version - The string version
      Returns:
      the version, for example [1, 5, 0] for Java 1.5.0_21
    • toJavaVersionIntArray

      private static int[] toJavaVersionIntArray(String version, int limit)

      Converts the given Java version string to an int[] of maximum size limit.

      Example return values:

      • [1, 2, 0] for Java 1.2
      • [1, 3, 1] for Java 1.3.1
      • [1, 5, 0, 21] for Java 1.5.0_21
      Parameters:
      version - The string version
      limit - version limit
      Returns:
      the version, for example [1, 5, 0, 21] for Java 1.5.0_21
    • toVersionFloat

      private static float toVersionFloat(int[] javaVersions)

      Converts given the Java version array to a float.

      Example return values:

      • 1.2f for Java 1.2
      • 1.31f for Java 1.3.1
      • 1.6f for Java 1.6.0_20

      Patch releases are not reported.

      Parameters:
      javaVersions - The version numbers
      Returns:
      the version, for example 1.31f for Java 1.3.1
    • toVersionInt

      private static int toVersionInt(int[] javaVersions)

      Converts given the Java version array to an int.

      Example return values:

      • 120 for Java 1.2
      • 131 for Java 1.3.1
      • 160 for Java 1.6.0_20

      Patch releases are not reported.

      Parameters:
      javaVersions - The version numbers
      Returns:
      the version, for example 1.31f for Java 1.3.1