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
    • 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
      Deprecated.
      Use File.separator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.
      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_JAVA_1_8
      Is true if this is Java version 1.8 (also 1.8.x versions).
      static boolean IS_JAVA_1_9
      Deprecated.
      As of release 3.5, replaced by IS_JAVA_9
      static boolean IS_JAVA_10
      Is true if this is Java version 10 (also 10.x versions).
      static boolean IS_JAVA_11
      Is true if this is Java version 11 (also 11.x versions).
      static boolean IS_JAVA_12
      Is true if this is Java version 12 (also 12.x versions).
      static boolean IS_JAVA_13
      Is true if this is Java version 13 (also 13.x versions).
      static boolean IS_JAVA_14
      Is true if this is Java version 14 (also 14.x versions).
      static boolean IS_JAVA_15
      Is true if this is Java version 15 (also 15.x versions).
      static boolean IS_JAVA_9
      Is true if this is Java version 9 (also 9.x versions).
      static boolean IS_OS_400
      Is true if this is IBM OS/400.
      static boolean IS_OS_AIX
      Is true if this is AIX.
      static boolean IS_OS_FREE_BSD
      Is true if this is FreeBSD.
      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_MAC_OSX_BIG_SUR
      Is true if this is Mac OS X Big Sur.
      static boolean IS_OS_MAC_OSX_CATALINA
      Is true if this is Mac OS X Catalina.
      static boolean IS_OS_MAC_OSX_CHEETAH
      Is true if this is Mac OS X Cheetah.
      static boolean IS_OS_MAC_OSX_EL_CAPITAN
      Is true if this is Mac OS X El Capitan.
      static boolean IS_OS_MAC_OSX_HIGH_SIERRA
      Is true if this is Mac OS X High Sierra.
      static boolean IS_OS_MAC_OSX_JAGUAR
      Is true if this is Mac OS X Jaguar.
      static boolean IS_OS_MAC_OSX_LEOPARD
      Is true if this is Mac OS X Leopard.
      static boolean IS_OS_MAC_OSX_LION
      Is true if this is Mac OS X Lion.
      static boolean IS_OS_MAC_OSX_MAVERICKS
      Is true if this is Mac OS X Mavericks.
      static boolean IS_OS_MAC_OSX_MOJAVE
      Is true if this is Mac OS X Mojave.
      static boolean IS_OS_MAC_OSX_MOUNTAIN_LION
      Is true if this is Mac OS X Mountain Lion.
      static boolean IS_OS_MAC_OSX_PANTHER
      Is true if this is Mac OS X Panther.
      static boolean IS_OS_MAC_OSX_PUMA
      Is true if this is Mac OS X Puma.
      static boolean IS_OS_MAC_OSX_SIERRA
      Is true if this is Mac OS X Sierra.
      static boolean IS_OS_MAC_OSX_SNOW_LEOPARD
      Is true if this is Mac OS X Snow Leopard.
      static boolean IS_OS_MAC_OSX_TIGER
      Is true if this is Mac OS X Tiger.
      static boolean IS_OS_MAC_OSX_YOSEMITE
      Is true if this is Mac OS X Yosemite.
      static boolean IS_OS_NET_BSD
      Is true if this is NetBSD.
      static boolean IS_OS_OPEN_BSD
      Is true if this is OpenBSD.
      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_10
      Is true if this is Windows 10.
      static boolean IS_OS_WINDOWS_2000
      Is true if this is Windows 2000.
      static boolean IS_OS_WINDOWS_2003
      Is true if this is Windows 2003.
      static boolean IS_OS_WINDOWS_2008
      Is true if this is Windows Server 2008.
      static boolean IS_OS_WINDOWS_2012
      Is true if this is Windows Server 2012.
      static boolean IS_OS_WINDOWS_7
      Is true if this is Windows 7.
      static boolean IS_OS_WINDOWS_8
      Is true if this is Windows 8.
      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 boolean IS_OS_ZOS
      Is true if this is z/OS.
      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.
      static java.lang.String JAVA_IO_TMPDIR
      The java.io.tmpdir System Property.
      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 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
      Deprecated.
      Use System.lineSeparator() instead, since it does not require a privilege check.
      static java.lang.String OS_ARCH
      The os.arch System Property.
      static java.lang.String OS_NAME
      The os.name System Property.
      static java.lang.String OS_VERSION
      The os.version System Property.
      static java.lang.String PATH_SEPARATOR
      Deprecated.
      Use File.pathSeparator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.
      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.
      static java.lang.String USER_HOME
      The user.home System Property.
      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 
      Modifier and Type Method Description
      static java.lang.String getEnvironmentVariable​(java.lang.String name, java.lang.String defaultValue)
      Gets an environment variable, defaulting to defaultValue if the variable cannot be read.
      static java.lang.String getHostName()
      Gets the host name from an environment variable (COMPUTERNAME on Windows, HOSTNAME elsewhere).
      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 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 java.lang.String getUserName()
      Gets the user name.
      static java.lang.String getUserName​(java.lang.String defaultValue)
      Gets the user name.
      static boolean isJavaAwtHeadless()
      Returns whether the JAVA_AWT_HEADLESS value is true.
      static boolean isJavaVersionAtLeast​(JavaVersion requiredVersion)
      Is the Java version at least the requested version.
      static boolean isJavaVersionAtMost​(JavaVersion requiredVersion)
      Is the Java version at most the requested version.
      • Methods inherited from class java.lang.Object

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

      • 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

        @Deprecated
        public static final java.lang.String FILE_SEPARATOR
        Deprecated.
        Use File.separator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.

        The file.separator System Property. The file separator is:

        • "/" on UNIX
        • "\" on Windows.

        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

        @Deprecated
        public static final java.lang.String LINE_SEPARATOR
        Deprecated.
        Use System.lineSeparator() instead, since it does not require a privilege check.

        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

        @Deprecated
        public static final java.lang.String PATH_SEPARATOR
        Deprecated.
        Use File.pathSeparator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.

        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
      • 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:
        3.0
      • IS_JAVA_1_8

        public static final boolean IS_JAVA_1_8

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.3.2
      • IS_JAVA_1_9

        @Deprecated
        public static final boolean IS_JAVA_1_9
        Deprecated.
        As of release 3.5, replaced by IS_JAVA_9

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.4
      • IS_JAVA_9

        public static final boolean IS_JAVA_9

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.5
      • IS_JAVA_10

        public static final boolean IS_JAVA_10

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.7
      • IS_JAVA_11

        public static final boolean IS_JAVA_11

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.8
      • IS_JAVA_12

        public static final boolean IS_JAVA_12

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.9
      • IS_JAVA_13

        public static final boolean IS_JAVA_13

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.9
      • IS_JAVA_14

        public static final boolean IS_JAVA_14

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.10
      • IS_JAVA_15

        public static final boolean IS_JAVA_15

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

        The field will return false if JAVA_VERSION is null.

        Since:
        3.10
      • 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_400

        public static final boolean IS_OS_400

        Is true if this is IBM OS/400.

        The field will return false if OS_NAME is null.

        Since:
        3.3
      • 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_MAC_OSX_CHEETAH

        public static final boolean IS_OS_MAC_OSX_CHEETAH

        Is true if this is Mac OS X Cheetah.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_PUMA

        public static final boolean IS_OS_MAC_OSX_PUMA

        Is true if this is Mac OS X Puma.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_JAGUAR

        public static final boolean IS_OS_MAC_OSX_JAGUAR

        Is true if this is Mac OS X Jaguar.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_PANTHER

        public static final boolean IS_OS_MAC_OSX_PANTHER

        Is true if this is Mac OS X Panther.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_TIGER

        public static final boolean IS_OS_MAC_OSX_TIGER

        Is true if this is Mac OS X Tiger.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_LEOPARD

        public static final boolean IS_OS_MAC_OSX_LEOPARD

        Is true if this is Mac OS X Leopard.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_SNOW_LEOPARD

        public static final boolean IS_OS_MAC_OSX_SNOW_LEOPARD

        Is true if this is Mac OS X Snow Leopard.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_LION

        public static final boolean IS_OS_MAC_OSX_LION

        Is true if this is Mac OS X Lion.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_MOUNTAIN_LION

        public static final boolean IS_OS_MAC_OSX_MOUNTAIN_LION

        Is true if this is Mac OS X Mountain Lion.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_MAVERICKS

        public static final boolean IS_OS_MAC_OSX_MAVERICKS

        Is true if this is Mac OS X Mavericks.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_YOSEMITE

        public static final boolean IS_OS_MAC_OSX_YOSEMITE

        Is true if this is Mac OS X Yosemite.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • IS_OS_MAC_OSX_EL_CAPITAN

        public static final boolean IS_OS_MAC_OSX_EL_CAPITAN

        Is true if this is Mac OS X El Capitan.

        The field will return false if OS_NAME is null.

        Since:
        3.5
      • IS_OS_MAC_OSX_SIERRA

        public static final boolean IS_OS_MAC_OSX_SIERRA

        Is true if this is Mac OS X Sierra.

        The field will return false if OS_NAME is null.

        Since:
        3.12.0
      • IS_OS_MAC_OSX_HIGH_SIERRA

        public static final boolean IS_OS_MAC_OSX_HIGH_SIERRA

        Is true if this is Mac OS X High Sierra.

        The field will return false if OS_NAME is null.

        Since:
        3.12.0
      • IS_OS_MAC_OSX_MOJAVE

        public static final boolean IS_OS_MAC_OSX_MOJAVE

        Is true if this is Mac OS X Mojave.

        The field will return false if OS_NAME is null.

        Since:
        3.12.0
      • IS_OS_MAC_OSX_CATALINA

        public static final boolean IS_OS_MAC_OSX_CATALINA

        Is true if this is Mac OS X Catalina.

        The field will return false if OS_NAME is null.

        Since:
        3.12.0
      • IS_OS_MAC_OSX_BIG_SUR

        public static final boolean IS_OS_MAC_OSX_BIG_SUR

        Is true if this is Mac OS X Big Sur.

        The field will return false if OS_NAME is null.

        Since:
        3.12.0
      • IS_OS_FREE_BSD

        public static final boolean IS_OS_FREE_BSD

        Is true if this is FreeBSD.

        The field will return false if OS_NAME is null.

        Since:
        3.1
      • IS_OS_OPEN_BSD

        public static final boolean IS_OS_OPEN_BSD

        Is true if this is OpenBSD.

        The field will return false if OS_NAME is null.

        Since:
        3.1
      • IS_OS_NET_BSD

        public static final boolean IS_OS_NET_BSD

        Is true if this is NetBSD.

        The field will return false if OS_NAME is null.

        Since:
        3.1
      • 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_2003

        public static final boolean IS_OS_WINDOWS_2003

        Is true if this is Windows 2003.

        The field will return false if OS_NAME is null.

        Since:
        3.1
      • IS_OS_WINDOWS_2008

        public static final boolean IS_OS_WINDOWS_2008

        Is true if this is Windows Server 2008.

        The field will return false if OS_NAME is null.

        Since:
        3.1
      • IS_OS_WINDOWS_2012

        public static final boolean IS_OS_WINDOWS_2012

        Is true if this is Windows Server 2012.

        The field will return false if OS_NAME is null.

        Since:
        3.4
      • 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:
        3.0
      • IS_OS_WINDOWS_8

        public static final boolean IS_OS_WINDOWS_8

        Is true if this is Windows 8.

        The field will return false if OS_NAME is null.

        Since:
        3.2
      • IS_OS_WINDOWS_10

        public static final boolean IS_OS_WINDOWS_10

        Is true if this is Windows 10.

        The field will return false if OS_NAME is null.

        Since:
        3.5
      • IS_OS_ZOS

        public static final boolean IS_OS_ZOS

        Is true if this is z/OS.

        The field will return false if OS_NAME is null.

        Since:
        3.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

      • getEnvironmentVariable

        public static java.lang.String getEnvironmentVariable​(java.lang.String name,
                                                              java.lang.String defaultValue)

        Gets an environment variable, defaulting to defaultValue if the variable cannot be read.

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

        Parameters:
        name - the environment variable name
        defaultValue - the default value
        Returns:
        the environment variable value or defaultValue if a security problem occurs
        Since:
        3.8
      • getHostName

        public static java.lang.String getHostName()
        Gets the host name from an environment variable (COMPUTERNAME on Windows, HOSTNAME elsewhere).

        If you want to know what the network stack says is the host name, you should use InetAddress.getLocalHost().getHostName().

        Returns:
        the host name. Will be null if the environment variable is not defined.
        Since:
        3.6
      • 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)
      • 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)
      • getUserName

        public static java.lang.String getUserName()

        Gets the user name.

        Returns:
        a name
        Throws:
        java.lang.SecurityException - if a security manager exists and its checkPropertyAccess method doesn't allow access to the specified system property.
        Since:
        3.10
        See Also:
        System.getProperty(String)
      • getUserName

        public static java.lang.String getUserName​(java.lang.String defaultValue)

        Gets the user name.

        Parameters:
        defaultValue - A default value.
        Returns:
        a name
        Throws:
        java.lang.SecurityException - if a security manager exists and its checkPropertyAccess method doesn't allow access to the specified system property.
        Since:
        3.10
        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​(JavaVersion requiredVersion)

        Is the Java version at least the requested version.

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

        public static boolean isJavaVersionAtMost​(JavaVersion requiredVersion)

        Is the Java version at most the requested version.

        Example input:

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