001: /*
002: * (C) Copyright 2004 Nabh Information Systems, Inc.
003: *
004: * All copyright notices regarding Nabh's products MUST remain
005: * intact in the scripts and in the outputted HTML.
006: * This program is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public License
008: * as published by the Free Software Foundation; either version 2.1
009: * of the License, or (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
019: *
020: */
021:
022: package com.nabhinc.util.info;
023:
024: /**
025: *
026: *
027: * @author Padmanabh Dabke
028: * (c) 2004 Nabh Information Systems, Inc. All Rights Reserved.
029: */
030: public class SystemInfo {
031:
032: private String siVMName = null;
033: private String siVMVendor = null;
034: private String siVMVersion = null;
035: private String siVMModeInfo = null;
036: private String siVMSpecName = null;
037: private String siVMSpecVendor = null;
038: private String siJavaSpecVersion = null;
039: private String siRTName = null;
040: private String siRTVersion = null;
041: private String siOSName = null;
042: private String siOSVersion = null;
043: private String siCPU = null;
044: private String siByteOrder = null;
045: private String siTimeZone = null;
046: private String siDefaultLang = null;
047:
048: long siTotalMemory = 0;
049: long siFreeMemory = 0;
050:
051: public SystemInfo() {
052: siVMName = getPropertyValue("java.vm.name");
053: siVMVendor = getPropertyValue("java.vm.vendor");
054: siVMVersion = getPropertyValue("java.vm.version");
055: siVMModeInfo = getPropertyValue("java.vm.info");
056: siVMSpecName = getPropertyValue("java.vm.specification.name");
057: siVMSpecVendor = getPropertyValue("java.vm.specification.vendor");
058: siJavaSpecVersion = getPropertyValue("java.specification.version");
059: siRTName = getPropertyValue("java.runtime.name");
060: siRTVersion = getPropertyValue("java.runtime.version");
061: siOSName = getPropertyValue("os.name");
062: siOSVersion = getPropertyValue("os.version");
063: siCPU = getPropertyValue("sun.cpu.isalist");
064: siByteOrder = getPropertyValue("sun.cpu.endian");
065: siTimeZone = getPropertyValue("user.timezone");
066: siDefaultLang = getPropertyValue("user.language");
067:
068: Runtime rt = Runtime.getRuntime();
069: siTotalMemory = rt.totalMemory();
070: siFreeMemory = rt.freeMemory();
071: }
072:
073: public static String getPropertyValue(String key) {
074: String propValue = null;
075: try {
076: propValue = System.getProperty(key, "");
077: } catch (NullPointerException ne) {
078: propValue = "not available";
079: } catch (IllegalArgumentException ie) {
080: propValue = "";
081: } catch (SecurityException ex) {
082: propValue = "can not be displayed";
083: }
084: return propValue;
085: }
086:
087: public String getCPUInfo() {
088: return siCPU;
089: }
090:
091: public String getOSName() {
092: return siOSName;
093: }
094:
095: public String getOSVersion() {
096: return siOSVersion;
097: }
098:
099: public String getVMRuntimeName() {
100: return siRTName;
101: }
102:
103: public String getVMRuntimeVersion() {
104: return siRTVersion;
105: }
106:
107: public String getVMName() {
108: return siVMName;
109: }
110:
111: public String getVMVendor() {
112: return siVMVendor;
113: }
114:
115: public String getVMSpecificationName() {
116: return siVMSpecName;
117: }
118:
119: public String getVMSpecificationVendor() {
120: return siVMSpecVendor;
121: }
122:
123: public String getVMVersion() {
124: return siVMVersion;
125: }
126:
127: public String getVMModeInfo() {
128: return siVMModeInfo;
129: }
130:
131: public String getJavaSpecificationVersion() {
132: return siJavaSpecVersion;
133: }
134:
135: public long getFreeMemory() {
136: return siFreeMemory;
137: }
138:
139: public long getFreeMemoryKB() {
140: return siFreeMemory / 1024;
141: }
142:
143: public long getFreeMemoryMB() {
144: return siFreeMemory / (1024 * 1024);
145: }
146:
147: public long getTotalMemory() {
148: return siTotalMemory;
149: }
150:
151: public long getTotalMemoryKB() {
152: return siTotalMemory / 1024;
153: }
154:
155: public long getTotalMemoryMB() {
156: return siTotalMemory / (1024 * 1024);
157: }
158:
159: public String getEndianInfo() {
160: return siByteOrder;
161: }
162:
163: public String getTimeZone() {
164: return siTimeZone;
165: }
166:
167: public String getDefaultLanguage() {
168: return siDefaultLang;
169: }
170: }
|