`
chanshui
  • 浏览: 84561 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sigar 网卡 内存 系统 流量 例子

阅读更多
最近在项目中要求获取一些处理器、内存、系统和网络等信息

我也看了一些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系统的指南书籍。SugarCRM是一种流行的客户关系管理(CRM)系统,旨在帮助企业管理和维护客户信息,提高销售效率,增强客户满意度。由于目前市面上中文版的...

    SugarCrm6.3.1中文汉化包

    SugarCRM是一款开源的CRM系统,广泛应用于企业销售、市场和服务部门,以提升客户体验和管理效率。而6.3.1是该系统的特定版本,可能包含了一些特有的功能或改进。 中文汉化包的出现,意味着原版SugarCRM的英文界面被...

    开源客户关系管理系统SugarCRM的使用教程.docx

    **SugarCRM 开源客户关系管理系统使用教程** SugarCRM 是一款流行的开源客户关系管理系统,它提供了丰富的功能,帮助企业管理和优化与客户的关系。以下是一些关键点的详细解释: 1. **权限设置** - **角色控制**...

    SugarCRM

    SugarCRM是一个开源的客户关系管理系统,它为企业提供了一套全面的工具来管理销售、市场和客户服务流程。SugarCRM不仅功能强大,而且具有高度的灵活性和可定制性,能够满足不同规模企业的特定需求。通过SugarCRM,...

    export.sugar百度大屏sugar模版下载.zip

    标题中的"export.sugar百度大屏sugar模版下载.zip"指示了这是一个包含SUGAR模板的压缩文件,专门设计用于在百度大屏上展示数据。SUGAR(Smart UI for Giant Analytics Report)是一种用于大数据可视化和分析的工具,...

    sugarCRM开源客户关系管理系统社区版源码

    糖果CRM(SugarCRM)是一款全球范围内广泛应用的开源客户关系管理(CRM)系统,它的社区版源码提供了基础的功能和自定义能力,让开发者可以根据需求进行定制化开发。这款系统以其用户友好、功能全面和高度可扩展性而...

    SugarCRM 客户关系管理系统 v6.4.3

    SugarCRM开源版是一款完全开放源代码的免费软件,具有 界面活泼、简单易学的特点。美国SugarCRM公司是一间创立时间不到三年、但迅速在全球范围取得一定影响的客户关系管理软件厂商。其基本的商业策略是:一边销售...

    Sugar CRM 6 中文包

    【Sugar CRM 6 中文包】是一个专门为喜爱开源客户关系管理系统SugarCRM的用户设计的汉化解决方案。这个中文包使得用户能够更方便地理解和使用SugarCRM,尤其对于那些中文为母语的用户,它消除了语言障碍,提升了用户...

    SugarCRM PHP客户关系管理系统 v6.2.2.rar

    糖果CRM(SugarCRM)是一款基于PHP开发的开源客户关系管理(CRM)系统,它旨在帮助企业管理和优化与客户的互动,提升销售效率和服务质量。在版本v6.2.2中,该系统可能包含了多项功能改进和性能优化。 首先,我们要...

    sugarcrm 英文开发指南

    《SugarCRM英文开发指南》深度解析 一、SugarCRM概览与核心功能 SugarCRM是一款开源的客户...通过掌握这些知识,开发者不仅能够有效利用SugarCRM的现有功能,还能根据企业需求进行定制化开发,最大化CRM系统的价值。

    sugarCrm 文档

    SugarCRM是一款非常流行的开源客户关系管理(CRM)系统,旨在帮助企业更好地管理销售、营销和服务流程。版本5.2的SugarCRM社区版提供了丰富的功能集,使得组织能够有效地跟踪客户交互、管理销售机会以及优化营销活动...

    SugarCRM项目常见面试问题

    SugarCRM是一个由美国SugarCRM公司开发的开源客户关系管理系统(Customer Relationship Management, CRM),它采用了B/S(Browser/Server)架构,具备高度可定制性和扩展性。SugarCRM的主要功能包括: - **市场管理...

    sugarCRM性能测试.zip

    糖CRM(SugarCRM)是一款广泛使用的开源客户关系管理软件,旨在帮助企业提高销售效率...这对于任何使用或计划使用SugarCRM的企业来说都是极其有价值的,因为它能确保系统在高并发、大数据量的环境下依然保持高效运行。

    SugarCRM CE 6.5.20

    总之,SugarCRM CE 6.5.20作为一款成熟的开源CRM系统,不仅提供了全面的业务管理功能,而且凭借其开源特性,为企业提供了灵活的定制空间和成本优势,是中小企业实现数字化转型的理想选择。通过深入理解和有效利用这...

    SQL Sugar数据访问框架

    4. 支持多种数据库:SQL Sugar不仅兼容常见的SQL Server、MySQL、Oracle、SQLite,还支持PostgreSQL、DB2等多种数据库系统,具备良好的跨平台能力。 5. 强大的代码生成器:SQL Sugar提供了一个内置的代码生成工具,...

    Sugar QCT_SP

    【标题】"Sugar QCT_SP" 是一个针对Andriod设备的软件包,特别是针对那些想要进行magiskroot操作的用户。"QCT"通常指的是Qualcomm Chipset Technology,暗示这个工具可能与高通芯片的Android设备有关。"SP"可能是...

    SugarCRM6.5.X汉化包

    【SugarCRM6.5.X汉化包】是一个针对SugarCRM 6.5版本的中文语言包,旨在为使用此CRM系统的中国用户提供更加便捷的操作体验。SugarCRM是一款开源的客户关系管理(CRM)软件,它提供了销售自动化、市场营销、客户服务...

Global site tag (gtag.js) - Google Analytics