快沉了,自己顶一下
|
|
又沉了,我是不是发错地方了
|
|
100分 |
Sigar,开源工具,里面有java实现的。
|
没找到对IO的,CPU和内存及一些其它的都有,网上有人说使用FileSystemUsage的getDiskWrites,试了不行 |
|
你看官方API啊,这个工具能获取的系统信息何止这些。 |
|
进官网看看有API没,http://support.hyperic.com/display/SIGAR/Home
|
|
在网上找到了一个,好像可以:http://www.cnblogs.com/jifeng/archive/2012/05/16/2503519.html |
|
package com.sinosoft.outher.listener;
import java.net.InetAddress; public class SysListener { private static void property() throws UnknownHostException { private static void memory() throws SigarException { private static void cpu() throws SigarException { private static void printCpuPerc(CpuPerc cpu) { private static void os() { private static void who() throws SigarException { |
|
private static void file() throws Exception {
Sigar sigar = new Sigar(); FileSystem fslist[] = sigar.getFileSystemList(); for (int i = 0; i < fslist.length; i++) { System.out.println(“分区的盘符名称” + i); FileSystem fs = fslist[i]; // 分区的盘符名称 System.out.println(“盘符名称: ” + fs.getDevName()); // 分区的盘符名称 System.out.println(“盘符路径: ” + fs.getDirName()); System.out.println(“盘符标志: ” + fs.getFlags());// // 文件系统类型,比如 FAT32、NTFS System.out.println(“盘符类型: ” + fs.getSysTypeName()); // 文件系统类型名,比如本地硬盘、光驱、网络文件系统等 System.out.println(“盘符类型名: ” + fs.getTypeName()); // 文件系统类型 System.out.println(“盘符文件系统类型: ” + fs.getType()); FileSystemUsage usage = null; switch (fs.getType()) { case 0: // TYPE_UNKNOWN :未知 break; case 1: // TYPE_NONE break; case 2: // TYPE_LOCAL_DISK : 本地硬盘 // 文件系统总大小 usage = sigar.getFileSystemUsage(fs.getDirName()); System.out.println(fs.getDevName() + “总大小: ” + usage.getTotal() + “KB”); // 文件系统剩余大小 System.out.println(fs.getDevName() + “剩余大小: ” + usage.getFree() + “KB”); // 文件系统可用大小 System.out.println(fs.getDevName() + “可用大小: ” + usage.getAvail() + “KB”); // 文件系统已经使用量 System.out.println(fs.getDevName() + “已经使用量: ” + usage.getUsed() + “KB”); double usePercent = usage.getUsePercent() * 100D; // 文件系统资源的利用率 System.out.println(fs.getDevName() + “资源的利用率: ” + usePercent + “%”); System.out.println(fs.getDevName() + “读出: ” + usage.getDiskReads()); System.out.println(fs.getDevName() + “写入: ” + usage.getDiskWrites()); break; case 3:// TYPE_NETWORK :网络 break; case 4:// TYPE_RAM_DISK :闪存 break; case 5:// TYPE_CDROM :光驱 break; case 6:// TYPE_SWAP :页面交换 break; } } return; } private static void net() throws Exception { private static void ethernet() throws SigarException { |