Class OsUtils


  • public final class OsUtils
    extends java.lang.Object
    Operating system dependent utility methods.
    • Field Detail

      • CURRENT_USER_OVERRIDE_PROP

        public static final java.lang.String CURRENT_USER_OVERRIDE_PROP
        Property that can be used to override the reported value from getCurrentUser(). If not set then "user.name" system property is used
        See Also:
        Constant Field Values
      • JAVA_VERSION_OVERRIDE_PROP

        public static final java.lang.String JAVA_VERSION_OVERRIDE_PROP
        Property that can be used to override the reported value from getJavaVersion(). If not set then "java.version" system property is used
        See Also:
        Constant Field Values
      • OS_TYPE_OVERRIDE_PROP

        public static final java.lang.String OS_TYPE_OVERRIDE_PROP
        Property that can be used to override the reported value from isWin32(). If not set then "os.name" system property is used
        See Also:
        Constant Field Values
      • WINDOWS_SHELL_COMMAND_NAME

        public static final java.lang.String WINDOWS_SHELL_COMMAND_NAME
        See Also:
        Constant Field Values
      • LINUX_SHELL_COMMAND_NAME

        public static final java.lang.String LINUX_SHELL_COMMAND_NAME
        See Also:
        Constant Field Values
      • LINUX_COMMAND

        public static final java.util.List<java.lang.String> LINUX_COMMAND
      • WINDOWS_COMMAND

        public static final java.util.List<java.lang.String> WINDOWS_COMMAND
      • CURRENT_USER_HOLDER

        private static final java.util.concurrent.atomic.AtomicReference<java.lang.String> CURRENT_USER_HOLDER
      • JAVA_VERSION_HOLDER

        private static final java.util.concurrent.atomic.AtomicReference<VersionInfo> JAVA_VERSION_HOLDER
      • OS_TYPE_HOLDER

        private static final java.util.concurrent.atomic.AtomicReference<java.lang.String> OS_TYPE_HOLDER
    • Constructor Detail

      • OsUtils

        private OsUtils()
    • Method Detail

      • isUNIX

        public static boolean isUNIX()
        Returns:
        true if the host is a UNIX system (and not Windows).
      • isOSX

        public static boolean isOSX()
        Returns:
        true if the host is a OSX (and not Windows or Unix).
      • setOS

        public static void setOS​(java.lang.String os)
        Can be used to enforce Win32 or Linux report from isWin32(), isOSX() or isUNIX()
        Parameters:
        os - The value to set - if null then O/S type is auto-detected
        See Also:
        isWin32(), isOSX(), isUNIX()
      • getOS

        private static java.lang.String getOS()
        Returns:
        The resolved O/S type string if not already set (lowercase)
      • resolveDefaultInteractiveShellCommand

        public static java.lang.String resolveDefaultInteractiveShellCommand()
      • resolveDefaultInteractiveShellCommand

        public static java.lang.String resolveDefaultInteractiveShellCommand​(boolean winOS)
      • resolveDefaultInteractiveCommandElements

        public static java.util.List<java.lang.String> resolveDefaultInteractiveCommandElements()
      • resolveDefaultInteractiveCommandElements

        public static java.util.List<java.lang.String> resolveDefaultInteractiveCommandElements​(boolean winOS)
      • getCurrentUser

        public static java.lang.String getCurrentUser()
        Get current user name
        Returns:
        Current user
        See Also:
        CURRENT_USER_OVERRIDE_PROP
      • getCanonicalUser

        public static java.lang.String getCanonicalUser​(java.lang.String user)
        Remove Windows domain and/or group prefix as well as "(User);" suffix
        Parameters:
        user - The original username - ignored if null/empty
        Returns:
        The canonical user - unchanged if Unix O/S
      • resolveCanonicalGroup

        public static java.lang.String resolveCanonicalGroup​(java.lang.String group,
                                                             java.lang.String user)
        Attempts to resolve canonical group name for Windows
        Parameters:
        group - The original group name - used if not null/empty
        user - The owner name - sometimes it contains a group name
        Returns:
        The canonical group name
      • setCurrentUser

        public static void setCurrentUser​(java.lang.String username)
        Can be used to programmatically set the username reported by getCurrentUser()
        Parameters:
        username - The username to set - if null then CURRENT_USER_OVERRIDE_PROP will be consulted
      • setJavaVersion

        public static void setJavaVersion​(VersionInfo version)
        Set programmatically the reported Java version
        Parameters:
        version - The version - if null then it will be automatically resolved
      • getComparablePath

        public static java.lang.String getComparablePath​(java.lang.String path)
        Parameters:
        path - The original path
        Returns:
        A path that can be compared with another one where case sensitivity of the underlying O/S has been taken into account - never null