1:
37:
38: package ;
39:
40: import ;
41:
42: import ;
43:
44: import ;
45: import ;
46: import ;
47: import ;
48: import ;
49: import ;
50: import ;
51:
52: import ;
53:
54:
60: public final class RuntimeMXBeanImpl
61: extends BeanImpl
62: implements RuntimeMXBean
63: {
64:
65: private static final String SUN_BOOT_CLASS_PATH = "sun.boot.class.path";
66: private static final String JAVA_BOOT_CLASS_PATH = "java.boot.class.path";
67:
68: private long startTime = -1;
69:
70: private String bootClassPath = null;
71:
72: private boolean bootClassPathSupported = true;
73:
74:
82: public RuntimeMXBeanImpl()
83: throws NotCompliantMBeanException
84: {
85: super(RuntimeMXBean.class);
86: }
87:
88: public String getBootClassPath()
89: {
90: checkMonitorPermissions();
91: if (isBootClassPathSupported())
92: return bootClassPath;
93: else
94: throw
95: new UnsupportedOperationException("Retrieving the boot " +
96: "classpath is not supported.");
97: }
98:
99: public String getClassPath()
100: {
101: return System.getProperty("java.class.path");
102: }
103:
104: public List getInputArguments()
105: {
106: checkMonitorPermissions();
107: return Arrays.asList(VMRuntimeMXBeanImpl.getInputArguments());
108: }
109:
110: public String getLibraryPath()
111: {
112: return System.getProperty("java.library.path");
113: }
114:
115: public String getManagementSpecVersion()
116: {
117: return "1.0";
118: }
119:
120: public String getName()
121: {
122: return VMRuntimeMXBeanImpl.getName();
123: }
124:
125: public String getSpecName()
126: {
127: return System.getProperty("java.vm.specification.name");
128: }
129:
130: public String getSpecVendor()
131: {
132: return System.getProperty("java.vm.specification.vendor");
133: }
134:
135: public String getSpecVersion()
136: {
137: return System.getProperty("java.vm.specification.version");
138: }
139:
140: public long getStartTime()
141: {
142: if (startTime == -1)
143: startTime = VMRuntimeMXBeanImpl.getStartTime();
144: return startTime;
145: }
146:
147: public Map getSystemProperties()
148: {
149: Map map = new HashMap();
150: Properties props = System.getProperties();
151: Iterator entries = props.entrySet().iterator();
152: while (entries.hasNext())
153: {
154: Map.Entry next = (Map.Entry) entries.next();
155: Object key = next.getKey();
156: Object value = next.getValue();
157: if (key instanceof String &&
158: value instanceof String)
159: map.put(key, value);
160: }
161: return map;
162: }
163:
164: public long getUptime()
165: {
166: return new Date().getTime() - getStartTime();
167: }
168:
169: public String getVmName()
170: {
171: return System.getProperty("java.vm.name");
172: }
173:
174: public String getVmVendor()
175: {
176: return System.getProperty("java.vm.vendor");
177: }
178:
179: public String getVmVersion()
180: {
181: return System.getProperty("java.vm.version");
182: }
183:
184: public boolean isBootClassPathSupported()
185: {
186: if (bootClassPath == null)
187: {
188: bootClassPath = SystemProperties.getProperty(JAVA_BOOT_CLASS_PATH);
189: if (bootClassPath == null)
190: bootClassPath = SystemProperties.getProperty(SUN_BOOT_CLASS_PATH);
191: if (bootClassPath == null)
192: bootClassPathSupported = false;
193: }
194: return bootClassPathSupported;
195: }
196:
197: }