22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt;
27
28 import java.security.PrivilegedAction;
29 import java.util.HashMap;
30 import java.util.Map;
31
32 import static sun.awt.OSInfo.OSType.*;
33
34 /**
35 * @author Pavel Porvatov
36 */
37 public class OSInfo {
38 public static enum OSType {
39 WINDOWS,
40 LINUX,
41 SOLARIS,
42 UNKNOWN
43 }
44
45 /*
46 The map windowsVersionMap must contain all windows version constants except WINDOWS_UNKNOWN,
47 and so the method getWindowsVersion() will return the constant for known OS.
48 It allows compare objects by "==" instead of "equals".
49 */
50 public static final WindowsVersion WINDOWS_UNKNOWN = new WindowsVersion(-1, -1);
51 public static final WindowsVersion WINDOWS_95 = new WindowsVersion(4, 0);
52 public static final WindowsVersion WINDOWS_98 = new WindowsVersion(4, 10);
53 public static final WindowsVersion WINDOWS_ME = new WindowsVersion(4, 90);
54 public static final WindowsVersion WINDOWS_2000 = new WindowsVersion(5, 0);
55 public static final WindowsVersion WINDOWS_XP = new WindowsVersion(5, 1);
56 public static final WindowsVersion WINDOWS_2003 = new WindowsVersion(5, 2);
57 public static final WindowsVersion WINDOWS_VISTA = new WindowsVersion(6, 0);
58
59 private static final String OS_NAME = "os.name";
60 private static final String OS_VERSION = "os.version";
61
84 /**
85 * Returns type of operating system.
86 */
87 public static OSType getOSType() throws SecurityException {
88 String osName = System.getProperty(OS_NAME);
89
90 if (osName != null) {
91 if (osName.contains("Windows")) {
92 return WINDOWS;
93 }
94
95 if (osName.contains("Linux")) {
96 return LINUX;
97 }
98
99 if (osName.contains("Solaris") || osName.contains("SunOS")) {
100 return SOLARIS;
101 }
102
103 // determine another OS here
104 }
105
106 return UNKNOWN;
107 }
108
109 public static PrivilegedAction<OSType> getOSTypeAction() {
110 return osTypeAction;
111 }
112
113 public static WindowsVersion getWindowsVersion() throws SecurityException {
114 String osVersion = System.getProperty(OS_VERSION);
115
116 if (osVersion == null) {
117 return WINDOWS_UNKNOWN;
118 }
119
120 synchronized (windowsVersionMap) {
121 WindowsVersion result = windowsVersionMap.get(osVersion);
122
123 if (result == null) {
|
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt;
27
28 import java.security.PrivilegedAction;
29 import java.util.HashMap;
30 import java.util.Map;
31
32 import static sun.awt.OSInfo.OSType.*;
33
34 /**
35 * @author Pavel Porvatov
36 */
37 public class OSInfo {
38 public static enum OSType {
39 WINDOWS,
40 LINUX,
41 SOLARIS,
42 AIX,
43 UNKNOWN
44 }
45
46 /*
47 The map windowsVersionMap must contain all windows version constants except WINDOWS_UNKNOWN,
48 and so the method getWindowsVersion() will return the constant for known OS.
49 It allows compare objects by "==" instead of "equals".
50 */
51 public static final WindowsVersion WINDOWS_UNKNOWN = new WindowsVersion(-1, -1);
52 public static final WindowsVersion WINDOWS_95 = new WindowsVersion(4, 0);
53 public static final WindowsVersion WINDOWS_98 = new WindowsVersion(4, 10);
54 public static final WindowsVersion WINDOWS_ME = new WindowsVersion(4, 90);
55 public static final WindowsVersion WINDOWS_2000 = new WindowsVersion(5, 0);
56 public static final WindowsVersion WINDOWS_XP = new WindowsVersion(5, 1);
57 public static final WindowsVersion WINDOWS_2003 = new WindowsVersion(5, 2);
58 public static final WindowsVersion WINDOWS_VISTA = new WindowsVersion(6, 0);
59
60 private static final String OS_NAME = "os.name";
61 private static final String OS_VERSION = "os.version";
62
85 /**
86 * Returns type of operating system.
87 */
88 public static OSType getOSType() throws SecurityException {
89 String osName = System.getProperty(OS_NAME);
90
91 if (osName != null) {
92 if (osName.contains("Windows")) {
93 return WINDOWS;
94 }
95
96 if (osName.contains("Linux")) {
97 return LINUX;
98 }
99
100 if (osName.contains("Solaris") || osName.contains("SunOS")) {
101 return SOLARIS;
102 }
103
104 // determine another OS here
105 if(osName.contains("AIX")) {
106 return AIX;
107 }
108 }
109
110 return UNKNOWN;
111 }
112
113 public static PrivilegedAction<OSType> getOSTypeAction() {
114 return osTypeAction;
115 }
116
117 public static WindowsVersion getWindowsVersion() throws SecurityException {
118 String osVersion = System.getProperty(OS_VERSION);
119
120 if (osVersion == null) {
121 return WINDOWS_UNKNOWN;
122 }
123
124 synchronized (windowsVersionMap) {
125 WindowsVersion result = windowsVersionMap.get(osVersion);
126
127 if (result == null) {
|