大家好,欢迎来到IT知识分享网。
一、 Sigar详细介绍
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。
Sigar资料地址:https://support.hyperic.com/display/SIGAR/Home
Sigar提供了一组轻便式接口来收集系统信息,主要信息包含:
● 系统内存,页面交换,cpu,平均负载,运行时间,登录信息;
● 每个进程占用的内存,cpu,帐号信息,状态,参数,环境,打开的文件;
● 文件系统监测和度量;
● 网络接口监测,配置信息和度量;
● TCP和UDP连接表;
● 网络路由表;
Sigar适用的平台:
Sigar发布包含的文件如下:
二、Sigar实例详解
1. 环境准备
1) 需要架包:sigar-1.6.4.jar
2)C:\Windows\System32中加入sigar-amd64-winnt.dll
2. 实例实现
1) SigarInfoEntity.java (sigar显示信息实体)
package com.lm; / * 数据显示实体 * @author ThinkPad * */ public class SigarInfoEntity { private String value; private String name; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public SigarInfoEntity(String value, String name) { super(); this.value = value; this.name = name; } public SigarInfoEntity(){ } }
2) SIgarUtils.java (sigar获取信息工具类)
package com.lm; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Properties; import org.hyperic.sigar.CpuInfo; import org.hyperic.sigar.CpuPerc; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; import org.hyperic.sigar.Mem; import org.hyperic.sigar.NetInterfaceConfig; import org.hyperic.sigar.NetInterfaceStat; import org.hyperic.sigar.OperatingSystem; import org.hyperic.sigar.Sigar; import org.hyperic.sigar.SigarException; import org.hyperic.sigar.Swap; / * sigar工具类 * * @author ThinkPad * */ public class SigarUtils { private static Sigar sigar; / * 获取sigar实体 * * @return */ public static Sigar getInstance() { if (null == sigar) { sigar = new Sigar(); } return sigar; } / * 1.获取系统信息和jvm虚拟机信息 * * @return * @throws UnknownHostException */ public static List<SigarInfoEntity> getJvmInfos() throws UnknownHostException { List<SigarInfoEntity> jvmInfoList = new ArrayList<SigarInfoEntity>(); Runtime r = Runtime.getRuntime(); // 系统配置属性 Properties sysProps = System.getProperties(); // java对ip封装的对象 InetAddress addr; addr = InetAddress.getLocalHost(); Map<String, String> envInfoMap = System.getenv(); String userName = envInfoMap.get("USERNAME");// 获取用户名 String computerName = envInfoMap.get("COMPUTERNAME");// 获取计算机名 String userDomain = envInfoMap.get("USERDOMAIN");// 获取计算机域名 jvmInfoList.add(new SigarInfoEntity(userName, "获取用户名")); jvmInfoList.add(new SigarInfoEntity(computerName, "获取计算机名")); jvmInfoList.add(new SigarInfoEntity(userDomain, "获取计算机域名")); jvmInfoList.add(new SigarInfoEntity(addr.getHostAddress(), "获取Ip")); jvmInfoList.add(new SigarInfoEntity(addr.getHostName(), "获取主机名称")); jvmInfoList.add(new SigarInfoEntity(String.valueOf(r.totalMemory()), "JVM总内存")); jvmInfoList.add(new SigarInfoEntity(String.valueOf(r.freeMemory()), "JVM剩余内存")); jvmInfoList.add(new SigarInfoEntity(String.valueOf(r .availableProcessors()), "jvm处理器个数")); jvmInfoList.add(new SigarInfoEntity(sysProps .getProperty("java.version"), "Java的运行环境版本")); jvmInfoList.add(new SigarInfoEntity( sysProps.getProperty("java.vendor"), "Java的运行环境供应商")); jvmInfoList.add(new SigarInfoEntity(sysProps .getPr
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112793.html
