最近在项目中要求获取一些处理器、内存、系统和网络等信息
我也看了一些sigar的使用,觉的sigar很实用
下面我说一下,我是如何使用的,其中有些部分是借鉴csdn前辈的:
使用sigar其实很简单,首先要在项目中添加sigar.jar以及对应系统的
库文件(xp为例,添加pdh.dll、sigar-x86-winnt.dll、sigar-x86-winnt.lib)
sigar包以及库文件下载地址:http://download.csdn.net/source/2344017
//接口定义
public interface LoadInfo {
//获取cpu使用率
public String getCpuInfo();
// 获取系统内存使用量
public String getRamInfo();
//获取网络使用流量
public String getNetworkInfo();
//获取操作系统信息
public String getSystemInfo();
// 获取运行环境信息
public String getRunLoadInfo();
//获取虚拟机剩余内存
public String getVmRamInfo();
}
//以下是接口的实现
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.util.Properties;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarNotImplementedException;
public class LoadInfoImpl implements LoadInfo {
/**
* 创建sigar对象用来获取系统信息
*/
private Sigar sigar = new Sigar();;
private CpuPerc cpuCerc;
private Properties props = System.getProperties();
private Mem mem;
public String getCpuInfo() {
try {
/**
* 获取cpu信息
*/
cpuCerc = sigar.getCpuPerc();
/**
* 保留两位小数
*/
DecimalFormat df = new DecimalFormat("#.00");
/**
* 如果cpu使用率为零时,不保留小数位
*/
if (cpuCerc.getCombined() == 0) {
return 0 + "%";
} else {
return df.format(cpuCerc.getCombined() * 100) + "%";
}
} catch (SigarException e) {
e.printStackTrace();
}
return String.valueOf(cpuCerc.getCombined());
}
public String getRamInfo() {
try {
/**
* 获取系统内存信息
*/
mem = sigar.getMem();
} catch (SigarException e) {
e.printStackTrace();
}
/**
* 返回系统内存使用量
*/
return mem.getUsed() / 1024 / 1024 + "M";
}
public String getNetworkInfo() {
String ifNames[]=null;
String txbyte=null;
try {
ifNames = sigar.getNetInterfaceList();
} catch (SigarException e2) {
e2.printStackTrace();
}
String name = ifNames[0];
try {
/**
* 获取网络流量
*/
NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
/**
* 获取发送的总字节数
*/
txbyte=ifstat.getTxBytes()+"byte";
} catch (SigarNotImplementedException e) {
} catch (SigarException e) {
System.out.println(e.getMessage());
}
return txbyte;
}
public String getSystemInfo() {
/**
* 获取操作系统名称
*/
return props.getProperty("os.name");
}
public String getRunLoadInfo() {
/**
* 获取运行环境信息
*/
String runload=props.getProperty("java.vm.name");
return runload;
}
public String getVmRamInfo() {
/**
* 获取虚拟机剩余内存
*/
return Runtime.getRuntime().freeMemory() / (1024 * 1024) + "M";
}
}
分享到:
相关推荐
SugarCRM PHP客户关系管理系统 v6.2.2.rar
SugarCRM开源版是一款完全开放源代码的免费软件,具有 界面活泼、简单易学的特点。美国SugarCRM公司是一间创立时间不到三年、但迅速在全球范围取得一定影响的客户关系管理软件厂商。其基本的商业策略是:一边销售...
开源客户关系管理系统SugarCRM的使用教程
export.sugar百度大屏sugar模版下载
SugarCRM开源版是一款完全开放源代码的免费软件,具有 界面活泼、简单易学的特点。美国SugarCRM公司是一间创立时间不到三年、但迅速在全球范围取得一定影响的客户关系管理软件厂商。其基本的商业策略是 一边销售收费...
I started this book with the intention of bringing a new side of SugarCRM to light. Since I began working at SugarCRM, I saw the flexibility and extensibility that the application could provide. I ...
sugarcrm原版教程,国内现在sugarcrm的教程较少,网页上很多翻译粗看比较难理解,如果要系统了解,这个是很不错的教程。
sugar.zip,使用MotionLayout实现高德地图bottomSheets效果
sugarcrm developer guide en sugarcrm developer guide en sugarcrm developer guide en
核心功能A 销售管理 共享潜在客户,联系方式和商业机会管理方面的信息和开拓新的业务 ...B 市场自动控制 潜在客户管理和培养新的潜在客户 ...sugar支持LAMP(Linux,Apache,Mysql,PHP)和 WIMP(Windows,IIS,Mysql,PHP) 系统
Sugar QCT_SP
第2步:把\htdocs\sugarcrm下的cache和custom全删除(使用Cache文件夹会访问更快,每次登陆系统会自动产生;custom是用户自定义的简直,在用户自定义了某些键值后,每次自动加载); 第3步,把汉化包文件(主要是...
SugarCRM v3.5.1c 简体中文版 See the Installation Guide found on SugarForge.org for installation steps of Sugar Open Source. http://www.sugarcrm.com/crm/documentation.html How to Install a Sugar Patch ...
SugarCRM CE 6.5.20 开源PHP CRM管理系统
Soft Sugar
SugarCRM客户关系管理系统.7z
SugarCRM ver 说明 SugarCRM Community Edition SugarCRM Professinal Edition SugarCRM Enterprise Edition
SugarCRM 中文汉化包,喜欢开源客户关系管理系统的同学可以下载此汉化包,来架设中文CRM系统
SugarCRM系统测试方案模板,根据CRM,cases模块测试需求,编写的测试方案,自己记录并参考使用
SugarCRM系统是由美国SugarCRM公司研发的一个b/s架构的开源的客户关系管理平台,主要包括市场管理,销售管理,服务管理,协作管理和报表统计分析等功能,以客户为中心,对客户的资料进行深入的剖析,从而为用户提供...