最近在项目中要求获取一些处理器、内存、系统和网络等信息
我也看了一些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傻瓜教程是一本专门为初学者编写的关于SugarCRM系统的指南书籍。SugarCRM是一种流行的客户关系管理(CRM)系统,旨在帮助企业管理和维护客户信息,提高销售效率,增强客户满意度。由于目前市面上中文版的...
SugarCRM是一款开源的CRM系统,广泛应用于企业销售、市场和服务部门,以提升客户体验和管理效率。而6.3.1是该系统的特定版本,可能包含了一些特有的功能或改进。 中文汉化包的出现,意味着原版SugarCRM的英文界面被...
**SugarCRM 开源客户关系管理系统使用教程** SugarCRM 是一款流行的开源客户关系管理系统,它提供了丰富的功能,帮助企业管理和优化与客户的关系。以下是一些关键点的详细解释: 1. **权限设置** - **角色控制**...
SugarCRM是一个开源的客户关系管理系统,它为企业提供了一套全面的工具来管理销售、市场和客户服务流程。SugarCRM不仅功能强大,而且具有高度的灵活性和可定制性,能够满足不同规模企业的特定需求。通过SugarCRM,...
标题中的"export.sugar百度大屏sugar模版下载.zip"指示了这是一个包含SUGAR模板的压缩文件,专门设计用于在百度大屏上展示数据。SUGAR(Smart UI for Giant Analytics Report)是一种用于大数据可视化和分析的工具,...
糖果CRM(SugarCRM)是一款全球范围内广泛应用的开源客户关系管理(CRM)系统,它的社区版源码提供了基础的功能和自定义能力,让开发者可以根据需求进行定制化开发。这款系统以其用户友好、功能全面和高度可扩展性而...
SugarCRM开源版是一款完全开放源代码的免费软件,具有 界面活泼、简单易学的特点。美国SugarCRM公司是一间创立时间不到三年、但迅速在全球范围取得一定影响的客户关系管理软件厂商。其基本的商业策略是:一边销售...
【Sugar CRM 6 中文包】是一个专门为喜爱开源客户关系管理系统SugarCRM的用户设计的汉化解决方案。这个中文包使得用户能够更方便地理解和使用SugarCRM,尤其对于那些中文为母语的用户,它消除了语言障碍,提升了用户...
糖果CRM(SugarCRM)是一款基于PHP开发的开源客户关系管理(CRM)系统,它旨在帮助企业管理和优化与客户的互动,提升销售效率和服务质量。在版本v6.2.2中,该系统可能包含了多项功能改进和性能优化。 首先,我们要...
《SugarCRM英文开发指南》深度解析 一、SugarCRM概览与核心功能 SugarCRM是一款开源的客户...通过掌握这些知识,开发者不仅能够有效利用SugarCRM的现有功能,还能根据企业需求进行定制化开发,最大化CRM系统的价值。
SugarCRM是一款非常流行的开源客户关系管理(CRM)系统,旨在帮助企业更好地管理销售、营销和服务流程。版本5.2的SugarCRM社区版提供了丰富的功能集,使得组织能够有效地跟踪客户交互、管理销售机会以及优化营销活动...
SugarCRM是一个由美国SugarCRM公司开发的开源客户关系管理系统(Customer Relationship Management, CRM),它采用了B/S(Browser/Server)架构,具备高度可定制性和扩展性。SugarCRM的主要功能包括: - **市场管理...
糖CRM(SugarCRM)是一款广泛使用的开源客户关系管理软件,旨在帮助企业提高销售效率...这对于任何使用或计划使用SugarCRM的企业来说都是极其有价值的,因为它能确保系统在高并发、大数据量的环境下依然保持高效运行。
总之,SugarCRM CE 6.5.20作为一款成熟的开源CRM系统,不仅提供了全面的业务管理功能,而且凭借其开源特性,为企业提供了灵活的定制空间和成本优势,是中小企业实现数字化转型的理想选择。通过深入理解和有效利用这...
4. 支持多种数据库:SQL Sugar不仅兼容常见的SQL Server、MySQL、Oracle、SQLite,还支持PostgreSQL、DB2等多种数据库系统,具备良好的跨平台能力。 5. 强大的代码生成器:SQL Sugar提供了一个内置的代码生成工具,...
【标题】"Sugar QCT_SP" 是一个针对Andriod设备的软件包,特别是针对那些想要进行magiskroot操作的用户。"QCT"通常指的是Qualcomm Chipset Technology,暗示这个工具可能与高通芯片的Android设备有关。"SP"可能是...
【SugarCRM6.5.X汉化包】是一个针对SugarCRM 6.5版本的中文语言包,旨在为使用此CRM系统的中国用户提供更加便捷的操作体验。SugarCRM是一款开源的客户关系管理(CRM)软件,它提供了销售自动化、市场营销、客户服务...