Class SystemUtils


  • public class SystemUtils
    extends java.lang.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 java.lang.String AWT_TOOLKIT
      The awt.toolkit System Property.
      static java.lang.String FILE_ENCODING
      The file.encoding System Property.
      static java.lang.String FILE_SEPARATOR
      The file.separator System Property.
      static boolean IS_JAVA_1_1
      Is true if this is Java version 1.1 (also 1.1.x versions).
      static boolean IS_JAVA_1_2
      Is true if this is Java version 1.2 (also 1.2.x versions).
      static boolean IS_JAVA_1_3
      Is true if this is Java version 1.3 (also 1.3.x versions).
      static boolean IS_JAVA_1_4
      Is true if this is Java version 1.4 (also 1.4.x versions).
      static boolean IS_JAVA_1_5
      Is true if this is Java version 1.5 (also 1.5.x versions).
      static boolean IS_JAVA_1_6
      Is true if this is Java version 1.6 (also 1.6.x versions).
      static boolean IS_JAVA_1_7
      Is true if this is Java version 1.7 (also 1.7.x versions).
      static boolean IS_OS_AIX
      Is true if this is AIX.
      static boolean IS_OS_HP_UX
      Is true if this is HP-UX.
      static boolean IS_OS_IRIX
      Is true if this is Irix.
      static boolean IS_OS_LINUX
      Is true if this is Linux.
      static boolean IS_OS_MAC
      Is true if this is Mac.
      static boolean IS_OS_MAC_OSX
      Is true if this is Mac.
      static boolean IS_OS_OS2
      Is true if this is OS/2.
      static boolean IS_OS_SOLARIS
      Is true if this is Solaris.
      static boolean IS_OS_SUN_OS
      Is true if this is SunOS.
      static 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 boolean IS_OS_WINDOWS
      Is true if this is Windows.
      static boolean IS_OS_WINDOWS_2000
      Is true if this is Windows 2000.
      static boolean IS_OS_WINDOWS_7
      Is true if this is Windows 7.
      static boolean IS_OS_WINDOWS_95
      Is true if this is Windows 95.
      static boolean IS_OS_WINDOWS_98
      Is true if this is Windows 98.
      static boolean IS_OS_WINDOWS_ME
      Is true if this is Windows ME.
      static boolean IS_OS_WINDOWS_NT
      Is true if this is Windows NT.
      static boolean IS_OS_WINDOWS_VISTA
      Is true if this is Windows Vista.
      static boolean IS_OS_WINDOWS_XP
      Is true if this is Windows XP.
      static java.lang.String JAVA_AWT_FONTS
      The java.awt.fonts System Property.
      static java.lang.String JAVA_AWT_GRAPHICSENV
      The java.awt.graphicsenv System Property.
      static java.lang.String JAVA_AWT_HEADLESS
      The java.awt.headless System Property.
      static java.lang.String JAVA_AWT_PRINTERJOB
      The java.awt.printerjob System Property.
      static java.lang.String JAVA_CLASS_PATH
      The java.class.path System Property.
      static java.lang.String JAVA_CLASS_VERSION
      The java.class.version System Property.
      static java.lang.String JAVA_COMPILER
      The java.compiler System Property.
      static java.lang.String JAVA_ENDORSED_DIRS
      The java.endorsed.dirs System Property.
      static java.lang.String JAVA_EXT_DIRS
      The java.ext.dirs System Property.
      static java.lang.String JAVA_HOME
      The java.home System Property.
      private static java.lang.String JAVA_HOME_KEY
      The System property key for the Java home directory.
      static java.lang.String JAVA_IO_TMPDIR
      The java.io.tmpdir System Property.
      private static java.lang.String JAVA_IO_TMPDIR_KEY
      The System property key for the Java IO temporary directory.
      static java.lang.String JAVA_LIBRARY_PATH
      The java.library.path System Property.
      static java.lang.String JAVA_RUNTIME_NAME
      The java.runtime.name System Property.
      static java.lang.String JAVA_RUNTIME_VERSION
      The java.runtime.version System Property.
      static java.lang.String JAVA_SPECIFICATION_NAME
      The java.specification.name System Property.
      static java.lang.String JAVA_SPECIFICATION_VENDOR
      The java.specification.vendor System Property.
      static java.lang.String JAVA_SPECIFICATION_VERSION
      The java.specification.version System Property.
      static java.lang.String JAVA_UTIL_PREFS_PREFERENCES_FACTORY
      The java.util.prefs.PreferencesFactory System Property.
      static java.lang.String JAVA_VENDOR
      The java.vendor System Property.
      static java.lang.String JAVA_VENDOR_URL
      The java.vendor.url System Property.
      static java.lang.String JAVA_VERSION
      The java.version System Property.
      static float JAVA_VERSION_FLOAT
      Gets the Java version as a float.
      static int JAVA_VERSION_INT
      Gets the Java version as an int.
      private static int JAVA_VERSION_TRIM_SIZE  
      static java.lang.String JAVA_VERSION_TRIMMED
      Gets the Java version as a String trimming leading letters.
      static java.lang.String JAVA_VM_INFO
      The java.vm.info System Property.
      static java.lang.String JAVA_VM_NAME
      The java.vm.name System Property.
      static java.lang.String JAVA_VM_SPECIFICATION_NAME
      The java.vm.specification.name System Property.
      static java.lang.String JAVA_VM_SPECIFICATION_VENDOR
      The java.vm.specification.vendor System Property.
      static java.lang.String JAVA_VM_SPECIFICATION_VERSION
      The java.vm.specification.version System Property.
      static java.lang.String JAVA_VM_VENDOR
      The java.vm.vendor System Property.
      static java.lang.String JAVA_VM_VERSION
      The java.vm.version System Property.
      static java.lang.String LINE_SEPARATOR
      The line.separator System Property.
      static java.lang.String OS_ARCH
      The os.arch System Property.
      static java.lang.String OS_NAME
      The os.name System Property.
      private static java.lang.String OS_NAME_WINDOWS_PREFIX
      The prefix String for all Windows OS.
      static java.lang.String OS_VERSION
      The os.version System Property.
      static java.lang.String PATH_SEPARATOR
      The path.separator System Property.
      static java.lang.String USER_COUNTRY
      The user.country or user.region System Property.
      static java.lang.String USER_DIR
      The user.dir System Property.
      private static java.lang.String USER_DIR_KEY
      The System property key for the user directory.
      static java.lang.String USER_HOME
      The user.home System Property.
      private static java.lang.String USER_HOME_KEY
      The System property key for the user home directory.
      static java.lang.String USER_LANGUAGE
      The user.language System Property.
      static java.lang.String USER_NAME
      The user.name System Property.
      static java.lang.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

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static java.io.File getJavaHome()
      Gets the Java home directory as a File.
      static java.io.File getJavaIoTmpDir()
      Gets the Java IO temporary directory as a File.
      static float getJavaVersion()
      Deprecated.
      Use JAVA_VERSION_FLOAT instead.
      private static float getJavaVersionAsFloat()
      Gets the Java version number as a float.
      private static int getJavaVersionAsInt()
      Gets the Java version number as an int.
      private static boolean getJavaVersionMatches​(java.lang.String versionPrefix)
      Decides if the Java version matches.
      private static java.lang.String getJavaVersionTrimmed()
      Trims the text of the java version to start with numbers.
      private static boolean getOSMatches​(java.lang.String osNamePrefix, java.lang.String osVersionPrefix)
      Decides if the operating system matches.
      private static boolean getOSMatchesName​(java.lang.String osNamePrefix)
      Decides if the operating system matches.
      private static java.lang.String getSystemProperty​(java.lang.String property)
      Gets a System property, defaulting to null if the property cannot be read.
      static java.io.File getUserDir()
      Gets the user directory as a File.
      static java.io.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.
      (package private) static boolean isJavaVersionMatch​(java.lang.String version, java.lang.String versionPrefix)
      Decides if the Java version matches.
      (package private) static boolean isOSMatch​(java.lang.String osName, java.lang.String osVersion, java.lang.String osNamePrefix, java.lang.String osVersionPrefix)
      Decides if the operating system matches.
      (package private) static boolean isOSNameMatch​(java.lang.String osName, java.lang.String osNamePrefix)
      Decides if the operating system matches.
      (package private) static float toJavaVersionFloat​(java.lang.String version)
      Converts the given Java version string to a float.
      (package private) static int toJavaVersionInt​(java.lang.String version)
      Converts the given Java version string to an int.
      (package private) static int[] toJavaVersionIntArray​(java.lang.String version)
      Converts the given Java version string to an int[] of maximum size 3.
      private static int[] toJavaVersionIntArray​(java.lang.String version, int limit)
      Converts the given Java version string to an int[] of maximum size limit.
      private static float toVersionFloat​(int[] javaVersions)
      Converts given the Java version array to a float.
      private static int toVersionInt​(int[] javaVersions)
      Converts given the Java version array to an int.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • JAVA_VERSION_TRIM_SIZE

        private static final int JAVA_VERSION_TRIM_SIZE
        See Also:
        Constant Field Values
      • OS_NAME_WINDOWS_PREFIX

        private static final java.lang.String OS_NAME_WINDOWS_PREFIX
        The prefix String for all Windows OS.
        See Also:
        Constant Field Values
      • USER_HOME_KEY

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

        private static final java.lang.String USER_DIR_KEY
        The System property key for the user directory.
        See Also:
        Constant Field Values
      • JAVA_IO_TMPDIR_KEY

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

        private static final java.lang.String JAVA_HOME_KEY
        The System property key for the Java home directory.
        See Also:
        Constant Field Values
      • AWT_TOOLKIT

        public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 Detail

      • 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 Detail

      • getJavaHome

        public static java.io.File getJavaHome()

        Gets the Java home directory as a File.

        Returns:
        a directory
        Throws:
        java.lang.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 java.io.File getJavaIoTmpDir()

        Gets the Java IO temporary directory as a File.

        Returns:
        a directory
        Throws:
        java.lang.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
      • 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​(java.lang.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 java.lang.String getJavaVersionTrimmed()
        Trims the text of the java version to start with numbers.
        Returns:
        the trimmed java version
      • getOSMatches

        private static boolean getOSMatches​(java.lang.String osNamePrefix,
                                            java.lang.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​(java.lang.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 java.lang.String getSystemProperty​(java.lang.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 java.io.File getUserDir()

        Gets the user directory as a File.

        Returns:
        a directory
        Throws:
        java.lang.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 java.io.File getUserHome()

        Gets the user home directory as a File.

        Returns:
        a directory
        Throws:
        java.lang.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
      • isJavaVersionMatch

        static boolean isJavaVersionMatch​(java.lang.String version,
                                          java.lang.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​(java.lang.String osName,
                                 java.lang.String osVersion,
                                 java.lang.String osNamePrefix,
                                 java.lang.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​(java.lang.String osName,
                                     java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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