java监控cup、系统的使用率(必须是JDK1.6)

package com.cvicse.test;
/**
 * @author jgao1 
 * Bytes类用来处理字符串
 */
public class Bytes {
	public static String substring(String src, int start_idx, int end_idx) {
		byte[] b = src.getBytes();
		String tgt = "";
		for (int i = start_idx; i <= end_idx; i++) {
			tgt += (char) b[i];
		}
		return tgt;
	}
}
package com.cvicse.test;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CountDate {

	private String currentMonth;
	private String nextMonth;
	private String currentYear;
	private String nextYear;
	private String currentYM;
	private String currentYMDHMS;
	private Date currentYMDHMSs;
	private String nextYMDHMS;

	/* 根据系统日期获得当月 */
	public String getCurrentMonth() {
		Calendar rightNow = Calendar.getInstance();
		if (String.valueOf(rightNow.get(Calendar.MONTH) + 1).length() > 1) {
			this.currentMonth = String
					.valueOf(rightNow.get(Calendar.MONTH) + 1);
			return currentMonth;
		}
		this.currentMonth = "0"
				+ String.valueOf(rightNow.get(Calendar.MONTH) + 1);

		return currentMonth;
	}

	/* 根据系统日期获得当年 */
	public String getCurrentYear() {
		Calendar rightNow = Calendar.getInstance();
		this.currentYear = String.valueOf(rightNow.get(Calendar.YEAR));
		return currentYear;
	}

	/* 根据系统日期获得数据库日期 */
	public String getCurrentYMDHMS() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Timestamp t = new Timestamp(Calendar.getInstance().getTimeInMillis());
		this.currentYMDHMS = sdf.format(t);
		return currentYMDHMS;
	}

	public Date getCurrentYMDHMSs() {
		Timestamp t = new Timestamp(Calendar.getInstance().getTimeInMillis());
		currentYMDHMSs = t;
		return currentYMDHMSs;
	}

	/* 根据系统日期获得下个月 */
	public String getNextMonth() {
		Calendar rightNow = Calendar.getInstance();
		if ((rightNow.get(Calendar.MONTH) + 1) == 12) {
			this.nextMonth = "01";
			this.nextYear = String.valueOf(rightNow.get(Calendar.YEAR) + 1);
			return nextMonth;
		}
		if (String.valueOf(rightNow.get(Calendar.MONTH) + 2).length() > 1) {
			this.nextMonth = String.valueOf(rightNow.get(Calendar.MONTH) + 2);
			return nextMonth;
		}
		this.nextMonth = "0" + String.valueOf(rightNow.get(Calendar.MONTH) + 2);
		return nextMonth;
	}

	/* 根据系统日期获得下个月的年分 */
	public String getNextYear() {
		Calendar rightNow = Calendar.getInstance();
		if ((rightNow.get(Calendar.MONTH) + 1) == 12) {
			this.nextMonth = "01";
			this.nextYear = String.valueOf(rightNow.get(Calendar.YEAR) + 1);
			return nextYear;
		}
		this.nextYear = String.valueOf(rightNow.get(Calendar.YEAR));
		return nextYear;
	}

	/* 根据系统日期获得下个月的数据库日期 */
	public String getNextYMDHMS() {
		nextYear = getNextYear();
		nextMonth = getNextMonth();
		this.nextYMDHMS = nextYear + "-" + nextMonth + "-" + "01 00:00:00";
		return nextYMDHMS;
	}

	/* 根据给定的月参数获得当月日期 */
	public String getCurrentMonth(int pcurrentMonth) {
		if (pcurrentMonth % 12 > 1 || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf((pcurrentMonth % 12)).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
				return currentMonth;
			}
		}
		if (String.valueOf(pcurrentMonth).length() > 1) {
			this.currentMonth = String.valueOf(pcurrentMonth);
		} else {
			this.currentMonth = "0" + String.valueOf(pcurrentMonth);
		}
		return currentMonth;

	}

	/* 根据给定的月参数和年参数获得当年 */
	public String getCurrentYear(int pcurrentMonth, int pcurrentYear) {
		if (pcurrentMonth % 12 > 1 || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf((pcurrentMonth % 12)).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
			}
			this.currentYear = String
					.valueOf(pcurrentMonth / 12 + pcurrentYear);
			return currentYear;
		}
		return this.currentYear = String.valueOf(pcurrentYear);
	}

	/* 根据给定的月参数和年参数获得数据库日期 */
	public String getCurrentYMDHMS(int pcurrentMonth, int pcurrentYear) {
		if ((pcurrentMonth % 12 > 1) || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf((pcurrentMonth % 12)).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
			}
			this.currentYear = String
					.valueOf(pcurrentMonth / 12 + pcurrentYear);
			this.currentYMDHMS = currentYear + "-" + currentMonth + "-"
					+ "01 00:00:00";
			return currentYMDHMS;
		}
		if (String.valueOf(pcurrentMonth).length() > 1) {
			this.currentMonth = String.valueOf(pcurrentMonth);
		} else {
			this.currentMonth = "0" + String.valueOf(pcurrentMonth);
		}
		this.currentYear = String.valueOf(pcurrentYear);
		this.currentYMDHMS = currentYear + "-" + currentMonth + "-"
				+ "01 00:00:00";
		return currentYMDHMS;
	}

	public Date getCurrentYMDHMSs(int pcurrentMonth, int pcurrentYear) {
		if (pcurrentMonth % 12 > 1 || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf((pcurrentMonth % 12)).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
			}
			this.currentYear = String
					.valueOf(pcurrentMonth / 12 + pcurrentYear);
			this.currentYMDHMSs = Timestamp.valueOf(currentYear + "-"
					+ currentMonth + "-" + "01 00:00:00.0");
			return currentYMDHMSs;
		}
		if (String.valueOf(pcurrentMonth).length() > 1) {
			this.currentMonth = String.valueOf(pcurrentMonth);
		} else {
			this.currentMonth = "0" + String.valueOf(pcurrentMonth);
		}
		this.currentYear = String.valueOf(pcurrentYear);
		this.currentYMDHMSs = Timestamp.valueOf(currentYear + "-"
				+ currentMonth + "-" + "01 00:00:00.0");
		return currentYMDHMSs;
	}

	/* 根据给定的月参数和年参数获得下个月的月份和年份 */
	public String getNextYMDHMS(int pcurrentMonth, int pcurrentYear) {
		if ((pcurrentMonth % 12 > 1) || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf((pcurrentMonth % 12)).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
			}
			this.currentYear = String
					.valueOf(pcurrentMonth / 12 + pcurrentYear);
			if (String.valueOf(Integer.parseInt(currentMonth) + 1).length() > 1) {
				this.nextMonth = String
						.valueOf(Integer.parseInt(currentMonth) + 1);
			} else {
				this.nextMonth = "0"
						+ String.valueOf(Integer.parseInt(currentMonth) + 1);
			}
			this.nextYear = currentYear;
			this.nextYMDHMS = nextYear + "-" + nextMonth + "-" + "01 00:00:00";
			return nextYMDHMS;
		}
		if (pcurrentMonth == 12) {
			this.nextMonth = "01";
			this.nextYear = String.valueOf(pcurrentYear + 1);
			this.nextYMDHMS = nextYear + "-" + nextMonth + "-" + "01 00:00:00";
			return nextYMDHMS;
		}
		if (String.valueOf(pcurrentMonth + 1).length() > 1) {
			this.nextMonth = String.valueOf(pcurrentMonth + 1);
			this.nextYear = String.valueOf(pcurrentYear);
			this.nextYMDHMS = nextYear + "-" + nextMonth + "-" + "01 00:00:00";
			return nextYMDHMS;
		}
		this.nextMonth = "0" + String.valueOf(pcurrentMonth + 1);
		this.nextYear = String.valueOf(pcurrentYear);
		this.nextYMDHMS = nextYear + "-" + nextMonth + "-" + "01 00:00:00";
		return nextYMDHMS;
	}

	/* 根据系统日期获得下个月的年份和月份 */
	public String getCurrentYM() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
		Timestamp t = new Timestamp(Calendar.getInstance().getTimeInMillis());
		this.currentYM = sdf.format(t);
		return currentYM;
	}

	/* 根据系统日期获得当月的年份和月份 */
	public String getCurrentYM(int pcurrentMonth, int pcurrentYear) {
		if (pcurrentMonth % 12 > 1 || (pcurrentMonth % 12 == 1)) {
			if (String.valueOf(pcurrentMonth % 12).length() > 1) {
				this.currentMonth = String.valueOf((pcurrentMonth % 12));
			} else {
				this.currentMonth = "0" + String.valueOf((pcurrentMonth % 12));
			}
			this.currentYear = String
					.valueOf(pcurrentMonth / 12 + pcurrentYear);
			this.currentYM = currentYear + "年" + currentMonth + "月";
			return currentYM;
		}
		if (String.valueOf(pcurrentMonth).length() > 1) {
			this.currentMonth = String.valueOf(pcurrentMonth);
		} else {
			this.currentMonth = "0" + String.valueOf(pcurrentMonth);
		}
		this.currentYear = String.valueOf(pcurrentYear);
		this.currentYM = currentYear + "年" + currentMonth + "月";
		return currentYM;
	}

	public static void main(String args[]) {
		CountDate c = new CountDate();
		System.out.println(c.getCurrentYMDHMSs(12, 2029));
	}
}

 

package com.cvicse.test;

import java.sql.Timestamp;

public class MonitorInfoBean implements Comparable<MonitorInfoBean> {
	/** 操作系统. */
	private String osName;

	/** 总的物理内存. */
	private float totalMemorySize;

	/** 已使用的物理内存. */
	private float usedMemory;

	/** cpu使用率. */
	private double cpuRatio;

	/** 主机IP地址 */
	private String mIpAddress;
	/** 数据存储时间 */
	private String dDateTime;

	/** 内存使用率 */
	private float memoryRatio;

	/** linux下Buffers内存 */
	private float buffersMemory;

	/** linux下Cached内存 */
	private float cachedMemory;

	public float getBuffersMemory() {
		return buffersMemory;
	}

	public float getCachedMemory() {
		return cachedMemory;
	}

	public String getDDateTime() {
		return dDateTime;
	}

	public void setDDateTime(String dateTime) {
		dDateTime = dateTime;
	}

	public String getMIpAddress() {
		return mIpAddress;
	}

	public void setMIpAddress(String ipAddress) {
		mIpAddress = ipAddress;
	}

	public String getOsName() {
		return osName;
	}

	public void setOsName(String osName) {
		this.osName = osName;
	}

	public float getTotalMemorySize() {
		return totalMemorySize;
	}

	public void setTotalMemorySize(float totalMemorySize) {
		this.totalMemorySize = totalMemorySize;
	}

	public float getUsedMemory() {
		return usedMemory;
	}

	public void setUsedMemory(long usedMemory) {
		this.usedMemory = usedMemory;
	}

	public double getCpuRatio() {
		return cpuRatio;
	}

	public void setCpuRatio(double cpuRatio) {
		this.cpuRatio = cpuRatio;
	}

	public int compareTo(MonitorInfoBean m) {
		String stra = this.getDDateTime();
		String strb = m.getDDateTime();
		Timestamp a = Timestamp.valueOf(stra);
		Timestamp b = Timestamp.valueOf(strb);
		if (a.before(b)) {
			return -1;
		} else if (a.after(b)) {
			return 1;
		} else {
			return 0;
		}

	}

	public float getMemoryRatio() {
		return memoryRatio;
	}

	public void setMemoryRatio(float memoryRatio) {
		this.memoryRatio = memoryRatio;
	}

	public void setUsedMemory(float usedMemory) {
		this.usedMemory = usedMemory;
	}

	public void setBuffersMemory(float buffersMemory) {
		this.buffersMemory = buffersMemory;
	}

	public void setCachedMemory(float cachedMemory) {
		this.cachedMemory = cachedMemory;
	}

}

 

package com.cvicse.test;

public interface IMonitorService {
	public MonitorInfoBean getMonitorInfoBean() throws Exception;
}

 

package com.cvicse.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.StringTokenizer;
import com.sun.management.OperatingSystemMXBean;
import sun.management.ManagementFactory;

public class MonitorServiceImpl implements IMonitorService {

	private static final int CPUTIME = 30;
	private static final int PERCENT = 100;
	private static final int FAULTLENGTH = 10;
	private static String osVersion = null;

	private String mIpAddress = null;
	private String dDateTime = null;
	private float totalMemorySize = 0.0f;
	private float buffersMemory = 0.0f;
	private float cachedMemory = 0.0f;
	private float usedMemory = 0.0f;
	private float memoryRatio;

	/**
	 * 获得当前的监控对象.
	 * 
	 * @return 返回构造好的监控对象
	 * @throws Exception
	 * @author YINLIANG
	 */
	public MonitorInfoBean getMonitorInfoBean() throws Exception {
		int kb = 1024;
		CountDate ddate = new CountDate();
		osVersion = System.getProperty("os.version");
		OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory
				.getOperatingSystemMXBean();

		// 操作系统
		String osName = System.getProperty("os.name");
		// 主机IP
		if (osName.toLowerCase().startsWith("windows")) {
			mIpAddress = this.getWindowsIp();
		} else {
			mIpAddress = this.getLinuxIP();
		}
		if (osName.toLowerCase().startsWith("windows")) {
			// 总的物理内存
			float totalPhysicalMemorySize = osmxb.getTotalPhysicalMemorySize()
					/ kb;
			float usedPhysicalMemorySize = (osmxb.getTotalPhysicalMemorySize() - osmxb
					.getFreePhysicalMemorySize())
					/ kb;
			totalMemorySize = Float.parseFloat(String.format("%.1f",
					totalPhysicalMemorySize));
			// 已使用的物理内存
			usedMemory = Float.parseFloat(String.format("%.1f",
					usedPhysicalMemorySize));
			// windows内存使用率
			memoryRatio = Float.parseFloat(String.format("%.1f",
					(usedMemory / totalMemorySize) * 100));
		} else {
			float[] result = null;
			result = getLinuxMemInfo();

			totalMemorySize = Float
					.parseFloat(String.format("%.1f", result[0]));
			buffersMemory = Float.parseFloat(String.format("%.1f", result[1]));
			cachedMemory = Float.parseFloat(String.format("%.1f", result[2]));
			usedMemory = totalMemorySize - result[3];
			// linux内存使用率
			memoryRatio = Float
					.parseFloat(String
							.format(
									"%.1f",
									((usedMemory - (cachedMemory + buffersMemory)) / totalMemorySize) * 100));
		}

		// 获得cpu频率
		double cpuRatio = 0;
		if (osName.toLowerCase().startsWith("windows")) {
			cpuRatio = this.getCpuRatioForWindows();
		} else {
			cpuRatio = this.getCpuRateForLinux();
		}
		/* 取得数据时间 */
		dDateTime = ddate.getCurrentYMDHMS();
		// 构造返回对象
		MonitorInfoBean infoBean = new MonitorInfoBean();

		infoBean.setOsName(osName);
		infoBean.setCpuRatio(cpuRatio);
		infoBean.setMIpAddress(mIpAddress);
		infoBean.setDDateTime(dDateTime);
		infoBean.setBuffersMemory(buffersMemory);
		infoBean.setCachedMemory(cachedMemory);
		infoBean.setUsedMemory(usedMemory);
		infoBean.setTotalMemorySize(totalMemorySize);
		infoBean.setMemoryRatio(memoryRatio);
		return infoBean;
	}

	/**
	 * 获得Linux下IP地址.
	 * 
	 * @return 返回Linux下IP地址
	 * @author yinliang
	 */
	public String getLinuxIP() {
		String ip = "";
		try {
			Enumeration<?> e1 = (Enumeration<?>) NetworkInterface
					.getNetworkInterfaces();
			while (e1.hasMoreElements()) {
				NetworkInterface ni = (NetworkInterface) e1.nextElement();
				if (!ni.getName().equals("eth0")) {
					continue;
				} else {
					Enumeration<?> e2 = ni.getInetAddresses();
					while (e2.hasMoreElements()) {
						InetAddress ia = (InetAddress) e2.nextElement();
						if (ia instanceof Inet6Address)
							continue;
						ip = ia.getHostAddress();
					}
					break;
				}
			}
		} catch (SocketException e) {
			e.printStackTrace();
			System.exit(-1);
		}
		return ip;
	}

	public String getWindowsIp() {
		String ip = "";
		try {
			ip = InetAddress.getLocalHost().getHostAddress();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
		return ip;
	}

	/**
	 * 获得Linux下CPU使用率.
	 * 
	 * @return 返回Linux下cpu使用率
	 * @author yinliang
	 */
	private double getCpuRateForLinux() {
		InputStream is = null;
		InputStreamReader isr = null;
		BufferedReader brStat = null;
		StringTokenizer tokenStat = null;
		try {

			Process process = Runtime.getRuntime().exec("top -b -n 1");
			is = process.getInputStream();
			isr = new InputStreamReader(is);
			brStat = new BufferedReader(isr);

			if (osVersion.startsWith("2.4")) {
				brStat.readLine();
				brStat.readLine();
				brStat.readLine();
				brStat.readLine();

				tokenStat = new StringTokenizer(brStat.readLine());
				tokenStat.nextToken();
				tokenStat.nextToken();
				String user = tokenStat.nextToken();
				tokenStat.nextToken();
				String system = tokenStat.nextToken();
				tokenStat.nextToken();
				String nice = tokenStat.nextToken();

				user = user.substring(0, user.indexOf("%"));
				system = system.substring(0, system.indexOf("%"));
				nice = nice.substring(0, nice.indexOf("%"));

				float userUsage = new Float(user).floatValue();
				float systemUsage = new Float(system).floatValue();
				float niceUsage = new Float(nice).floatValue();

				return (userUsage + systemUsage + niceUsage) / 100;
			} else {
				brStat.readLine();
				brStat.readLine();

				tokenStat = new StringTokenizer(brStat.readLine());
				tokenStat.nextToken();
				tokenStat.nextToken();
				tokenStat.nextToken();
				tokenStat.nextToken();
				String cpuUsage = tokenStat.nextToken();

				Float usage = new Float(cpuUsage.substring(0, cpuUsage
						.indexOf("%")));

				return ((1 - usage.floatValue() / 100) * 100);
			}

		} catch (IOException ioe) {
			System.out.println(ioe.getMessage());
			freeResource(is, isr, brStat);
			return 1;
		} finally {
			freeResource(is, isr, brStat);
		}

	}

	private static void freeResource(InputStream is, InputStreamReader isr,
			BufferedReader br) {
		try {
			if (is != null)
				is.close();
			if (isr != null)
				isr.close();
			if (br != null)
				br.close();
		} catch (IOException ioe) {
			System.out.println(ioe.getMessage());
		}
	}

	/**
	 * 获得windows下CPU使用率.
	 * 
	 * @return 返回windows下cpu使用率
	 * @author YINLIANG
	 */
	private double getCpuRatioForWindows() {
		try {
			mIpAddress = InetAddress.getLocalHost().getHostAddress();
			String procCmd = System.getenv("windir")
					+ "\\system32\\wbem\\wmic.exe process get Caption,CommandLine,"
					+ "KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";
			// 取进程信息
			long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));
			Thread.sleep(CPUTIME);
			long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));
			if (c0 != null && c1 != null) {
				long idletime = c1[0] - c0[0];
				long busytime = c1[1] - c0[1];
				return Double.valueOf(
						PERCENT * (busytime) / (busytime + idletime))
						.doubleValue();
			} else {
				return 0.0;
			}
		} catch (Exception ex) {
			ex.printStackTrace();
			return 0.0;
		}
	}

	/**
	 * 
	 * 读取CPU信息.
	 * 
	 * @param proc
	 * @return
	 * @author GuoHuang
	 */
	private long[] readCpu(final Process proc) {
		long[] retn = new long[2];
		try {
			proc.getOutputStream().close();
			InputStreamReader ir = new InputStreamReader(proc.getInputStream());
			LineNumberReader input = new LineNumberReader(ir);
			String line = input.readLine();
			if (line == null || line.length() < FAULTLENGTH) {
				return null;
			}
			int capidx = line.indexOf("Caption");
			int cmdidx = line.indexOf("CommandLine");
			int rocidx = line.indexOf("ReadOperationCount");
			int umtidx = line.indexOf("UserModeTime");
			int kmtidx = line.indexOf("KernelModeTime");
			int wocidx = line.indexOf("WriteOperationCount");
			long idletime = 0;
			long kneltime = 0;
			long usertime = 0;
			while ((line = input.readLine()) != null) {
				if (line.length() < wocidx) {
					continue;
				}
				// 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount,
				// ThreadCount,UserModeTime,WriteOperation
				String caption = Bytes.substring(line, capidx, cmdidx - 1)
						.trim();
				String cmd = Bytes.substring(line, cmdidx, kmtidx - 1).trim();
				if (cmd.indexOf("wmic.exe") >= 0) {
					continue;
				}
				// log.info("line="+line);
				if (caption.equals("System Idle Process")
						|| caption.equals("System")) {
					idletime += Long.valueOf(
							Bytes.substring(line, kmtidx, rocidx - 1).trim())
							.longValue();
					idletime += Long.valueOf(
							Bytes.substring(line, umtidx, wocidx - 1).trim())
							.longValue();
					continue;
				}

				kneltime += Long.valueOf(
						Bytes.substring(line, kmtidx, rocidx - 1).trim())
						.longValue();
				usertime += Long.valueOf(
						Bytes.substring(line, umtidx, wocidx - 1).trim())
						.longValue();
			}
			retn[0] = idletime;
			retn[1] = kneltime + usertime;
			return retn;
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			try {
				proc.getInputStream().close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return null;
	}

	public float[] getLinuxMemInfo() {
		File file = new File("/proc/meminfo");
		float result[] = new float[4];
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					new FileInputStream(file)));
			String str = null;
			StringTokenizer token = null;
			while ((str = br.readLine()) != null) {
				token = new StringTokenizer(str);
				if (!token.hasMoreTokens()) {
					continue;
				}
				str = token.nextToken();
				if (!token.hasMoreTokens()) {
					continue;
				}
				if (str.equalsIgnoreCase("MemTotal:")) {
					result[0] = Long.parseLong(token.nextToken());

				}
				if (str.equalsIgnoreCase("Buffers:")) {
					result[1] = Long.parseLong(token.nextToken());

				}
				if (str.equalsIgnoreCase("Cached:")) {
					result[2] = Long.parseLong(token.nextToken());

				}
				if (str.equalsIgnoreCase("MemFree:")) {
					result[3] = Long.parseLong(token.nextToken());

				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 测试方法.
	 * 
	 * @param args
	 * @throws Exception
	 * @author YINLIANG
	 */
	public static void information() {
		MonitorInfoBean monitorInfo = null;
		IMonitorService service = new MonitorServiceImpl();
		try {
			monitorInfo = service.getMonitorInfoBean();
		} catch (Exception e) {
			e.printStackTrace();
		}
		String osName = monitorInfo.getOsName();
		String cpuRatio = String.valueOf(monitorInfo.getCpuRatio());
		String mIpAddress = monitorInfo.getMIpAddress();
		String memoryRatio = String.valueOf(monitorInfo.getMemoryRatio());
		String dDateTime = monitorInfo.getDDateTime();
		System.out.println("操作系统名字:" + osName);
		System.out.println("cpu使用频率:" + cpuRatio);
		System.out.println("内存使用率:" + memoryRatio);
		System.out.println("主机IP地址:" + mIpAddress);
		System.out.println("获取数据时间:" + dDateTime);
	}

	public static void main(String[] args) {
		MonitorServiceImpl.information();
	}
}

 

你可能感兴趣的:(java,linux,windows,.net,OS)