Class SystemUtils
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
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final StringTheawt.toolkitSystem Property.static final StringThefile.encodingSystem Property.static final StringDeprecated.static final booleanIstrueif this is Java version 1.1 (also 1.1.x versions).static final booleanIstrueif this is Java version 1.2 (also 1.2.x versions).static final booleanIstrueif this is Java version 1.3 (also 1.3.x versions).static final booleanIstrueif this is Java version 1.4 (also 1.4.x versions).static final booleanIstrueif this is Java version 1.5 (also 1.5.x versions).static final booleanIstrueif this is Java version 1.6 (also 1.6.x versions).static final booleanIstrueif this is Java version 1.7 (also 1.7.x versions).static final booleanIstrueif this is Java version 1.8 (also 1.8.x versions).static final booleanDeprecated.As of release 3.5, replaced byIS_JAVA_9static final booleanIstrueif this is Java version 10 (also 10.x versions).static final booleanIstrueif this is Java version 11 (also 11.x versions).static final booleanIstrueif this is Java version 12 (also 12.x versions).static final booleanIstrueif this is Java version 13 (also 13.x versions).static final booleanIstrueif this is Java version 14 (also 14.x versions).static final booleanIstrueif this is Java version 15 (also 15.x versions).static final booleanIstrueif this is Java version 16 (also 16.x versions).static final booleanIstrueif this is Java version 17 (also 17.x versions).static final booleanIstrueif this is Java version 18 (also 18.x versions).static final booleanIstrueif this is Java version 19 (also 19.x versions).static final booleanIstrueif this is Java version 20 (also 20.x versions).static final booleanIstrueif this is Java version 21 (also 21.x versions).static final booleanIstrueif this is Java version 22 (also 22.x versions).static final booleanIstrueif this is Java version 9 (also 9.x versions).static final booleanIstrueif this is IBM OS/400.static final booleanIstrueif this is AIX.static final booleanIstrueif this is Android.static final booleanIstrueif this is FreeBSD.static final booleanIstrueif this is HP-UX.static final booleanIstrueif this is Irix.static final booleanIstrueif this is Linux.static final booleanIstrueif this is Mac.static final booleanIstrueif this is Mac.static final booleanIstrueif this is macOS X Big Sur.static final booleanIstrueif this is macOS X Catalina.static final booleanIstrueif this is macOS X Cheetah.static final booleanIstrueif this is macOS X El Capitan.static final booleanIstrueif this is macOS X High Sierra.static final booleanIstrueif this is macOS X Jaguar.static final booleanIstrueif this is macOS X Leopard.static final booleanIstrueif this is macOS X Lion.static final booleanIstrueif this is macOS X Mavericks.static final booleanIstrueif this is macOS X Mojave.static final booleanIstrueif this is macOS X Monterey.static final booleanIstrueif this is macOS X Mountain Lion.static final booleanIstrueif this is macOS X Panther.static final booleanIstrueif this is macOS X Puma.static final booleanIstrueif this is macOS X Sierra.static final booleanIstrueif this is macOS X Snow Leopard.static final booleanIstrueif this is macOS X Sonoma.static final booleanIstrueif this is macOS X Tiger.static final booleanIstrueif this is macOS X Ventura.static final booleanIstrueif this is macOS X Yosemite.static final booleanIstrueif this is NetBSD.static final booleanIstrueif this is OpenBSD.static final booleanIstrueif this is OS/2.static final booleanIstrueif this is Solaris.static final booleanIstrueif this is SunOS.static final booleanIstrueif this is a UNIX like system, as in any of AIX, HP-UX, Irix, Linux, MacOSX, Solaris or SUN OS.static final booleanIstrueif this is Windows.static final booleanIstrueif this is Windows 10.static final booleanIstrueif this is Windows 11.static final booleanIstrueif this is Windows 2000.static final booleanIstrueif this is Windows 2003.static final booleanIstrueif this is Windows Server 2008.static final booleanIstrueif this is Windows Server 2012.static final booleanIstrueif this is Windows 7.static final booleanIstrueif this is Windows 8.static final booleanIstrueif this is Windows 95.static final booleanIstrueif this is Windows 98.static final booleanIstrueif this is Windows ME.static final booleanIstrueif this is Windows NT.static final booleanIstrueif this is Windows Vista.static final booleanIstrueif this is Windows XP.static final booleanIstrueif this is z/OS.static final StringThejava.awt.fontsSystem Property.static final StringThejava.awt.graphicsenvSystem Property.static final StringThejava.awt.headlessSystem Property.static final StringThejava.awt.printerjobSystem Property.static final StringThejava.class.pathSystem Property.static final StringThejava.class.versionSystem Property.static final StringThejava.compilerSystem Property.static final StringThejava.endorsed.dirsSystem Property.static final StringThejava.ext.dirsSystem Property.static final StringThejava.homeSystem Property.static final StringDeprecated.static final StringThejava.io.tmpdirSystem Property.static final StringDeprecated.static final StringThejava.library.pathSystem Property.static final StringThejava.runtime.nameSystem Property.static final StringThejava.runtime.versionSystem Property.static final StringThejava.specification.nameSystem Property.static final StringThejava.specification.vendorSystem Property.static final StringThejava.specification.versionSystem Property.static final StringThejava.util.prefs.PreferencesFactorySystem Property.static final StringThejava.vendorSystem Property.static final StringThejava.vendor.urlSystem Property.static final StringThejava.versionSystem Property.static final StringThejava.vm.infoSystem Property.static final StringThejava.vm.nameSystem Property.static final StringThejava.vm.specification.nameSystem Property.static final StringThejava.vm.specification.vendorSystem Property.static final StringThejava.vm.specification.versionSystem Property.static final StringThejava.vm.vendorSystem Property.static final StringThejava.vm.versionSystem Property.static final StringDeprecated.UseSystem.lineSeparator()instead, since it does not require a privilege check.static final StringTheos.archSystem Property.static final StringTheos.nameSystem Property.static final StringTheos.versionSystem Property.static final StringDeprecated.UseFile.pathSeparator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.static final StringTheuser.countryoruser.regionSystem Property.static final StringTheuser.dirSystem Property.static final StringDeprecated.static final StringTheuser.homeSystem Property.static final StringThe System property key for the user home directory.static final StringTheuser.languageSystem Property.static final StringTheuser.nameSystem Property.static final StringDeprecated.static final StringTheuser.timezoneSystem Property.
- 
Constructor SummaryConstructorsConstructorDescriptionSystemUtils instances should NOT be constructed in standard programming.
- 
Method SummaryModifier and TypeMethodDescriptionstatic StringgetEnvironmentVariable(String name, String defaultValue) Gets an environment variable, defaulting todefaultValueif the variable cannot be read.static StringGets the host name from an environment variable (COMPUTERNAME on Windows, HOSTNAME elsewhere).static FileGets the current Java home directory as aFile.static FileGets the current Java IO temporary directory as aFile.static FileGets the current user directory as aFile.static FileGets the current user home directory as aFile.static StringDeprecated.static StringgetUserName(String defaultValue) Deprecated.static booleanReturns whether theJAVA_AWT_HEADLESSvalue istrue.static booleanisJavaVersionAtLeast(JavaVersion requiredVersion) Is the Java version at least the requested version.static booleanisJavaVersionAtMost(JavaVersion requiredVersion) Is the Java version at most the requested version.
- 
Field Details- 
FILE_ENCODINGThefile.encodingSystem Property.File encoding, such as Cp1252.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
FILE_SEPARATORDeprecated.UseFile.separator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.Thefile.separatorSystem Property. The file separator is:- "/"on UNIX
- "\"on Windows.
 Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_AWT_FONTSThejava.awt.fontsSystem Property.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_AWT_GRAPHICSENVThejava.awt.graphicsenvSystem Property.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_AWT_HEADLESSThejava.awt.headlessSystem Property. The value of this property is the String"true"or"false".Defaults to nullif 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)orSystem.setProperties(java.util.Properties)is called after this class is loaded, the value will be out of sync with that System property.- Since:
- 2.1, Java 1.4
- See Also:
 
- 
JAVA_AWT_PRINTERJOBThejava.awt.printerjobSystem Property.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_CLASS_PATHThejava.class.pathSystem Property. Java class path.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_CLASS_VERSIONThejava.class.versionSystem Property. Java class format version number.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_COMPILERThejava.compilerSystem Property. Name of JIT compiler to use. First in JDK version 1.2. Not used in Sun JDKs after 1.2.Defaults to nullif 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)orSystem.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.
- See Also:
 
- 
JAVA_ENDORSED_DIRSThejava.endorsed.dirsSystem Property. Path of endorsed directory or directories.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_EXT_DIRSThejava.ext.dirsSystem Property. Path of extension directory or directories.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_HOMEThejava.homeSystem Property. Java installation directory.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_IO_TMPDIRThejava.io.tmpdirSystem Property. Default temp file path.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_LIBRARY_PATHThejava.library.pathSystem Property. List of paths to search when loading libraries.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_RUNTIME_NAMEThejava.runtime.nameSystem Property. Java Runtime Environment name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_RUNTIME_VERSIONThejava.runtime.versionSystem Property. Java Runtime Environment version.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_SPECIFICATION_NAMEThejava.specification.nameSystem Property. Java Runtime Environment specification name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_SPECIFICATION_VENDORThejava.specification.vendorSystem Property. Java Runtime Environment specification vendor.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_SPECIFICATION_VERSIONThejava.specification.versionSystem Property. Java Runtime Environment specification version.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_UTIL_PREFS_PREFERENCES_FACTORYThejava.util.prefs.PreferencesFactorySystem Property. A class name.Defaults to nullif 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)orSystem.setProperties(java.util.Properties)is called after this class is loaded, the value will be out of sync with that System property.- Since:
- 2.1, Java 1.4
- See Also:
 
- 
JAVA_VENDORThejava.vendorSystem Property. Java vendor-specific string.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VENDOR_URLThejava.vendor.urlSystem Property. Java vendor URL.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VERSIONThejava.versionSystem Property. Java version number.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_INFOThejava.vm.infoSystem Property. Java Virtual Machine implementation info.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_NAMEThejava.vm.nameSystem Property. Java Virtual Machine implementation name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_SPECIFICATION_NAMEThejava.vm.specification.nameSystem Property. Java Virtual Machine specification name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_SPECIFICATION_VENDORThejava.vm.specification.vendorSystem Property. Java Virtual Machine specification vendor.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_SPECIFICATION_VERSIONThejava.vm.specification.versionSystem Property. Java Virtual Machine specification version.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_VENDORThejava.vm.vendorSystem Property. Java Virtual Machine implementation vendor.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
JAVA_VM_VERSIONThejava.vm.versionSystem Property. Java Virtual Machine implementation version.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
LINE_SEPARATORDeprecated.UseSystem.lineSeparator()instead, since it does not require a privilege check.Theline.separatorSystem Property. Line separator ("\n"on UNIX).Defaults to nullif 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)orSystem.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
- See Also:
 
- 
OS_ARCHTheos.archSystem Property. Operating system architecture.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
OS_NAMETheos.nameSystem Property. Operating system name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
OS_VERSIONTheos.versionSystem Property. Operating system version.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
PATH_SEPARATORDeprecated.UseFile.pathSeparator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.Thepath.separatorSystem Property. Path separator (":"on UNIX).Defaults to nullif 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)orSystem.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
- See Also:
 
- 
USER_COUNTRYTheuser.countryoruser.regionSystem Property. User's country code, such as"GB". First in Java version 1.2 asuser.region. Renamed touser.countryin 1.4Defaults to nullif 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)orSystem.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_DIRTheuser.dirSystem Property. User's current working directory.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
USER_HOMETheuser.homeSystem Property. User's home directory.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
USER_LANGUAGETheuser.languageSystem Property. User's language code, such as"en".Defaults to nullif 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)orSystem.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
- See Also:
 
- 
USER_NAMETheuser.nameSystem Property. User's account name.Defaults to nullif 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)orSystem.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
- See Also:
 
- 
USER_TIMEZONETheuser.timezoneSystem Property. For example:"America/Los_Angeles".Defaults to nullif 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)orSystem.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
- See Also:
 
- 
IS_JAVA_1_1Istrueif this is Java version 1.1 (also 1.1.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_2Istrueif this is Java version 1.2 (also 1.2.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_3Istrueif this is Java version 1.3 (also 1.3.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_4Istrueif this is Java version 1.4 (also 1.4.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_5Istrueif this is Java version 1.5 (also 1.5.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_6Istrueif this is Java version 1.6 (also 1.6.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. 
- 
IS_JAVA_1_7Istrueif this is Java version 1.7 (also 1.7.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.0
 
- 
IS_JAVA_1_8Istrueif this is Java version 1.8 (also 1.8.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.3.2
 
- 
IS_JAVA_1_9Deprecated.As of release 3.5, replaced byIS_JAVA_9Istrueif this is Java version 1.9 (also 1.9.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_JAVA_9Istrueif this is Java version 9 (also 9.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.5
 
- 
IS_JAVA_10Istrueif this is Java version 10 (also 10.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.7
 
- 
IS_JAVA_11Istrueif this is Java version 11 (also 11.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.8
 
- 
IS_JAVA_12Istrueif this is Java version 12 (also 12.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.9
 
- 
IS_JAVA_13Istrueif this is Java version 13 (also 13.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.9
 
- 
IS_JAVA_14Istrueif this is Java version 14 (also 14.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.10
 
- 
IS_JAVA_15Istrueif this is Java version 15 (also 15.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.10
 
- 
IS_JAVA_16Istrueif this is Java version 16 (also 16.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_17Istrueif this is Java version 17 (also 17.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_18Istrueif this is Java version 18 (also 18.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_19Istrueif this is Java version 19 (also 19.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_20Istrueif this is Java version 20 (also 20.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_21Istrueif this is Java version 21 (also 21.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_JAVA_22Istrueif this is Java version 22 (also 22.x versions).The field will return falseifJAVA_VERSIONisnull.This value is initialized when the class is loaded. - Since:
- 3.15.0
 
- 
IS_OS_AIXIstrueif this is AIX.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_ANDROIDIstrueif this is Android.See https://developer.android.com/reference/java/lang/System#getProperties(). This value is initialized when the class is loaded. - Since:
- 3.15.0
 
- 
IS_OS_HP_UXIstrueif this is HP-UX.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_400Istrueif this is IBM OS/400.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.3
 
- 
IS_OS_IRIXIstrueif this is Irix.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_LINUXIstrueif this is Linux.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_MACIstrueif this is Mac.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_MAC_OSXIstrueif this is Mac.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_MAC_OSX_CHEETAHIstrueif this is macOS X Cheetah.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_PUMAIstrueif this is macOS X Puma.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_JAGUARIstrueif this is macOS X Jaguar.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_PANTHERIstrueif this is macOS X Panther.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_TIGERIstrueif this is macOS X Tiger.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_LEOPARDIstrueif this is macOS X Leopard.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_SNOW_LEOPARDIstrueif this is macOS X Snow Leopard.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_LIONIstrueif this is macOS X Lion.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_MOUNTAIN_LIONIstrueif this is macOS X Mountain Lion.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_MAVERICKSIstrueif this is macOS X Mavericks.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_YOSEMITEIstrueif this is macOS X Yosemite.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_MAC_OSX_EL_CAPITANIstrueif this is macOS X El Capitan.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.5
 
- 
IS_OS_MAC_OSX_SIERRAIstrueif this is macOS X Sierra.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.12.0
 
- 
IS_OS_MAC_OSX_HIGH_SIERRAIstrueif this is macOS X High Sierra.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.12.0
 
- 
IS_OS_MAC_OSX_MOJAVEIstrueif this is macOS X Mojave.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.12.0
 
- 
IS_OS_MAC_OSX_CATALINAIstrueif this is macOS X Catalina.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.12.0
 
- 
IS_OS_MAC_OSX_BIG_SURIstrueif this is macOS X Big Sur.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.12.0
 
- 
IS_OS_MAC_OSX_MONTEREYIstrueif this is macOS X Monterey.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_OS_MAC_OSX_VENTURAIstrueif this is macOS X Ventura.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_OS_MAC_OSX_SONOMAIstrueif this is macOS X Sonoma.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.15.0
 
- 
IS_OS_FREE_BSDIstrueif this is FreeBSD.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.1
 
- 
IS_OS_OPEN_BSDIstrueif this is OpenBSD.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.1
 
- 
IS_OS_NET_BSDIstrueif this is NetBSD.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.1
 
- 
IS_OS_OS2Istrueif this is OS/2.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_SOLARISIstrueif this is Solaris.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_SUN_OSIstrueif this is SunOS.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_UNIXIstrueif this is a UNIX like system, as in any of AIX, HP-UX, Irix, Linux, MacOSX, Solaris or SUN OS.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.1
 
- 
IS_OS_WINDOWSIstrueif this is Windows.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_2000Istrueif this is Windows 2000.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_2003Istrueif this is Windows 2003.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.1
 
- 
IS_OS_WINDOWS_2008Istrueif this is Windows Server 2008.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.1
 
- 
IS_OS_WINDOWS_2012Istrueif this is Windows Server 2012.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.4
 
- 
IS_OS_WINDOWS_95Istrueif this is Windows 95.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_98Istrueif this is Windows 98.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_MEIstrueif this is Windows ME.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_NTIstrueif this is Windows NT.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_XPIstrueif this is Windows XP.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.0
 
- 
IS_OS_WINDOWS_VISTAIstrueif this is Windows Vista.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 2.4
 
- 
IS_OS_WINDOWS_7Istrueif this is Windows 7.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.0
 
- 
IS_OS_WINDOWS_8Istrueif this is Windows 8.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.2
 
- 
IS_OS_WINDOWS_10Istrueif this is Windows 10.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.5
 
- 
IS_OS_WINDOWS_11Istrueif this is Windows 11.The field will return falseifOS_NAMEisnull.OpenJDK fixed the return value for os.nameon Windows 11 to versions 8, 11, and 17:- Affects Java versions 7u321, 8u311, 11.0.13-oracle, 17.0.1: https://bugs.openjdk.org/browse/JDK-8274737
- Fixed in OpenJDK commit https://github.com/openjdk/jdk/commit/97ea9dd2f24f9f1fb9b9345a4202a825ee28e014
 This value is initialized when the class is loaded. - Since:
- 3.13.0
 
- 
IS_OS_ZOSIstrueif this is z/OS.The field will return falseifOS_NAMEisnull.This value is initialized when the class is loaded. - Since:
- 3.5
 
- 
USER_HOME_KEYThe System property key for the user home directory.- See Also:
 
- 
USER_NAME_KEYDeprecated.The System property key for the user name.- See Also:
 
- 
USER_DIR_KEYDeprecated.The System property key for the user directory.- See Also:
 
- 
JAVA_IO_TMPDIR_KEYDeprecated.The System property key for the Java IO temporary directory.- See Also:
 
- 
JAVA_HOME_KEYDeprecated.The System property key for the Java home directory.- See Also:
 
- 
AWT_TOOLKITTheawt.toolkitSystem 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 nullif 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)orSystem.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
- See Also:
 
 
- 
- 
Constructor Details- 
SystemUtilspublic SystemUtils()SystemUtils instances should NOT be constructed in standard programming. Instead, the class should be used asSystemUtils.FILE_SEPARATOR.This constructor is public to permit tools that require a JavaBean instance to operate. 
 
- 
- 
Method Details- 
getEnvironmentVariableGets an environment variable, defaulting todefaultValueif the variable cannot be read.If a SecurityExceptionis caught, the return value isdefaultValueand a message is written toSystem.err.- Parameters:
- name- the environment variable name
- defaultValue- the default value
- Returns:
- the environment variable value or defaultValueif a security problem occurs
- Since:
- 3.8
 
- 
getHostNameGets 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 nullif the environment variable is not defined.
- Since:
- 3.6
 
- 
getJavaHomeGets the current Java home directory as aFile.- Returns:
- a directory
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 2.1
- See Also:
 
- 
getJavaIoTmpDirGets the current Java IO temporary directory as aFile.- Returns:
- a directory
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 2.1
- See Also:
 
- 
getUserDirGets the current user directory as aFile.- Returns:
- a directory
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 2.1
- See Also:
 
- 
getUserHomeGets the current user home directory as aFile.- Returns:
- a directory
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 2.1
- See Also:
 
- 
getUserNameDeprecated.Gets the current user name.- Returns:
- a name
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 3.10
- See Also:
 
- 
getUserNameDeprecated.Gets the user name.- Parameters:
- defaultValue- A default value.
- Returns:
- a name
- Throws:
- SecurityException- if a security manager exists and its- checkPropertyAccessmethod doesn't allow access to the specified system property.
- Since:
- 3.10
- See Also:
 
- 
isJavaAwtHeadlessReturns whether theJAVA_AWT_HEADLESSvalue istrue.- Returns:
- trueif- JAVA_AWT_HEADLESSis- "true",- falseotherwise.
- Since:
- 2.1, Java 1.4
- See Also:
 
- 
isJavaVersionAtLeastIs the Java version at least the requested version.- Parameters:
- requiredVersion- the required version, for example 1.31f
- Returns:
- trueif the actual version is equal or greater than the required version
 
- 
isJavaVersionAtMostIs the Java version at most the requested version.Example input: - Parameters:
- requiredVersion- the required version, for example 1.31f
- Returns:
- trueif the actual version is equal or less than the required version
- Since:
- 3.9
 
 
- 
File.separator, since it is guaranteed to be a string containing a single character and it does not require a privilege check.