`
chanshui
  • 浏览: 82767 次
  • 性别: 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 PHP客户关系管理系统 v6.2.2.rar

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

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

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

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

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

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

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

    SugarCRM(客户关系管理系统) v6.4.3.rar

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

    SugarCRM For Dummies

    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原版教程,国内现在sugarcrm的教程较少,网页上很多翻译粗看比较难理解,如果要系统了解,这个是很不错的教程。

    sugar.zip

    sugar.zip,使用MotionLayout实现高德地图bottomSheets效果

    sugarcrm developer guide en

    sugarcrm developer guide en sugarcrm developer guide en sugarcrm developer guide en

    SugarCRM 6.5.9

    核心功能A 销售管理 共享潜在客户,联系方式和商业机会管理方面的信息和开拓新的业务 ...B 市场自动控制 潜在客户管理和培养新的潜在客户 ...sugar支持LAMP(Linux,Apache,Mysql,PHP)和 WIMP(Windows,IIS,Mysql,PHP) 系统

    Sugar QCT_SP

    Sugar QCT_SP

    SugarCRM6.2.0的中文包

    第2步:把\htdocs\sugarcrm下的cache和custom全删除(使用Cache文件夹会访问更快,每次登陆系统会自动产生;custom是用户自定义的简直,在用户自定义了某些键值后,每次自动加载); 第3步,把汉化包文件(主要是...

    SugarCRM v3.5.1c 简体中文版

    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

    SugarCRM CE 6.5.20 开源PHP CRM管理系统

    Soft Sugar

    Soft Sugar

    SugarCRM客户关系管理系统.7z

    SugarCRM客户关系管理系统.7z

    SugarCRM各版本功能说明

    SugarCRM ver 说明 SugarCRM Community Edition SugarCRM Professinal Edition SugarCRM Enterprise Edition

    Sugar CRM 6 中文包

    SugarCRM 中文汉化包,喜欢开源客户关系管理系统的同学可以下载此汉化包,来架设中文CRM系统

    SugarCRM系统测试方案模板-用于记录模板自己参考使用

    SugarCRM系统测试方案模板,根据CRM,cases模块测试需求,编写的测试方案,自己记录并参考使用

    SugarCRM项目常见面试问题

    SugarCRM系统是由美国SugarCRM公司研发的一个b/s架构的开源的客户关系管理平台,主要包括市场管理,销售管理,服务管理,协作管理和报表统计分析等功能,以客户为中心,对客户的资料进行深入的剖析,从而为用户提供...

Global site tag (gtag.js) - Google Analytics