`
java_xiaowu
  • 浏览: 5142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用sigar获取处理器、内存、系统和网络信息

阅读更多

 首先创建一个web项目,在webroot/web-inf/lib下添加以下库和包(库的添加要根据不同的操作系统决定,以下包适用于windows xp和Vista)

 

编写测试类:

import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;

public class SigarTest {
 public static void main(String[] args) throws Exception {
  Sigar sigar = new Sigar();
  Mem mem = sigar.getMem();
  CpuPerc cpuCerc = sigar.getCpuPerc();
  System.out.println("*****当前CPU使用情况 :");
  System.out.println("#总使用率: " + cpuCerc.getCombined() * 100 + "%");
  System.out.println("#用户使用率(user): " + cpuCerc.getUser() * 100 + "%");
  System.out.println("#系统使用率(sys): " + cpuCerc.getSys() * 100 + "%");
  System.out.println("#当前空闲率(idel): " + cpuCerc.getIdle() * 100 + "%");
  System.out.println("\n*****当前内存使用情况 :");
  System.out.println("#内存总量:" + mem.getTotal() / 1024 / 1024 + "M");
  System.out.println("#已使用内存:" + mem.getUsed() / 1024 / 1024 + "M");
  System.out.println("#剩余内存:" + mem.getFree() / 1024 / 1024 + "M");

 }
}

 

 

获取网络信息的方法:

public static void netInterfaceData() throws Exception {
  Sigar sigar = new Sigar();
  String ifNames[] = sigar.getNetInterfaceList();
  for (int i = 0; i < ifNames.length; i++) {
   String name = ifNames[i];
   NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
   System.out.println("Nname = " + name);// 网络设备名
   System.out.println("Address = " + ifconfig.getAddress());// IP地址
   System.out.println("Netmask = " + ifconfig.getNetmask());// 子网掩码
   if ((ifconfig.getFlags() & 1L) <= 0L) {
    System.out.println("!IFF_UP...skipping getNetInterfaceStat");
    continue;
   }
   try {
    NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
    System.out.println("RxPackets = " + ifstat.getRxPackets());// 接收的总包裹数
    System.out.println("TxPackets = " + ifstat.getTxPackets());// 发送的总包裹数
    System.out.println("RxBytes = " + ifstat.getRxBytes());// 接收到的总字节数
    System.out.println("TxBytes = " + ifstat.getTxBytes());// 发送的总字节数
    System.out.println("RxErrors = " + ifstat.getRxErrors());// 接收到的错误包数
    System.out.println("TxErrors = " + ifstat.getTxErrors());// 发送数据包时的错误数
    System.out.println("RxDropped = " + ifstat.getRxDropped());// 接收时丢弃的包数
    System.out.println("TxDropped = " + ifstat.getTxDropped());// 发送时丢弃的包数
   } catch (SigarNotImplementedException e) {
   } catch (SigarException e) {
    System.out.println(e.getMessage());
   }
  }
 }

 

 

附件中附带:hyperic-sigar-1.6.3包

  • 大小: 3.6 KB
1
0
分享到:
评论

相关推荐

    sigar-amd64-winnt.dll sigar-x86-winnt.dll sigar-x86-winnt.lib 获取本机信息

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统度量库,它提供了一种统一的接口来获取操作系统和其上运行的服务的各种信息。在Windows NT系统上,Sigar提供了amd64和x86架构的动态链接库...

    sigar-linux依赖 libsigar-amd64-linux.so

    这些函数允许开发者获取关于内存使用、进程状态、网络连接、CPU负载等系统级别的信息。AMD64表示这是为x86-64架构设计的,也就是常说的64位处理器,比如AMD或Intel的64位处理器。在Linux系统中,动态链接库通常以`....

    java读取硬件信息所需jar包以及sigar-x86-winnt.dll文件

    在Java编程中,获取计算机硬件信息是一项常见的任务,这通常涉及到操作系统、处理器、内存、硬盘等设备的状态。为了实现这一功能,开发人员可以利用第三方库,如Sigar(System Information Gatherer and Reporter)...

    sigar dll for win and linux.rar

    Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它提供了一种简单的方法来获取操作系统级别的信息,如CPU、内存、网络、磁盘和其他资源的状态。这个"sigar dll for win and linux...

    windows获取服务器等信息工具.zip

    4. **进程信息**:进程列表、CPU和内存使用情况等。 5. **系统负载**:系统负载平均值、CPU利用率等。 6. **内存和交换空间**:物理内存、虚拟内存的使用情况。 在Windows环境中,`sigar-amd64-winnt.dll` 和 `...

    使用java获取系统信息machineInfo-master.zip

    6. **示例代码**: 项目中的代码可能展示了如何获取操作系统信息,CPU信息,内存使用情况,网络接口信息,甚至是硬盘信息等。每个类或方法都可能对应一种特定的系统信息获取方式。 7. **测试用例**: 可能还会有测试...

    MooInfo是OSHI 的一种可视化实现,用于查看有关系统和硬件的信息 如操作系统,进程,内存,CPU,磁盘,设备,传感器等

    2. **进程信息**:展示正在运行的进程列表,包括进程ID、名称、状态、CPU和内存使用情况等,这对于系统性能分析和故障排查很有帮助。 3. **内存状态**:提供总内存、已用内存、空闲内存等数据,以及内存分配和使用率...

    sigar_so.zip

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它允许开发者获取各种操作系统级别的信息,包括但不限于CPU、内存、网络、磁盘等资源的状态。在标题和描述中提到的问题,"找...

    libsigar-amd64-linux.so以及libsigar-x86-linux.so

    Sigar由Hewlett Packard Enterprise(HPE)开发并维护,它提供了一个统一的API,允许程序获取多种操作系统环境下的系统信息,如内存使用、CPU负载、进程状态等。 首先,"libsigar-amd64-linux.so"是用于64位(AMD64...

    sigar:系统信息收集器和报告器

    它提供了丰富的API,能够获取操作系统级别的详细信息,包括但不限于CPU利用率、内存使用情况、网络接口状态、进程列表、磁盘I/O统计等。这个开源项目旨在为各种操作系统提供统一的接口,简化了获取系统状态信息的...

    libsigar-amd64-linux.so和libsigar-x86-linux.so

    libsigar(System Information Gatherer and Reporter)是这样一款库,它提供了一种统一的方式来获取各种操作系统平台上的系统信息,包括内存使用、进程状态、网络连接等。本文将深入探讨libsigar库及其在Linux环境...

    libsigar-amd64-linux.so

    1. **进程信息**:能够获取系统的进程列表,包括每个进程的ID、父进程ID、用户、状态、CPU时间、内存使用等。 2. **内存信息**:可以获取系统总内存、可用内存、交换空间等信息,以及各个进程的内存分配情况。 3. **...

    libsigar需要的所有so文件.zip

    在Linux环境中,动态链接库(.so文件)是程序运行时加载的代码库,包含了libsigar所需的函数实现,使得应用程序能够调用libsigar提供的功能,如获取系统负载、内存使用情况、进程信息等。 2. **libsigar-x86-...

    libsigar-amd64-linux.zip

    libsigar(System Information Gatherer and Reporter)是一个跨平台库,用于获取操作系统级别的信息,如进程、内存、CPU使用情况、网络状态等。这个库是由Hypertable项目开发并维护的,旨在提供一种简单且一致的...

    libsigar-amd64-linux.so libsigar-x86-linux.so

    在Java应用程序中,这些动态链接库文件用于获取操作系统级别的信息,如内存使用情况、进程状态、网络接口统计等。 首先,我们要理解“lib”前缀,这是Linux系统中库文件的通用命名约定,表示这是一个库文件。后缀...

    libsigar-aarch64-linux.rar

    `sigar_mem_get()`则可以获取系统的内存使用情况。 值得注意的是,使用libsigar时,需要处理跨平台兼容性问题,因为不同的操作系统和架构可能有不同的数据结构和获取系统信息的方式。libsigar通过抽象这些差异,...

    SystemInformation:显示系统信息

    除了`java.lang.Runtime`,Java还提供了`java.lang.management`包,其中的`OperatingSystemMXBean`接口和相关的MXBean可以获取更详细的系统信息,如CPU核心数、系统负载、内存使用情况等。例如,通过`...

    libsigar-aarch64-linux.7z

    libsigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一个跨平台的库,它提供了丰富的API来获取操作系统级别的信息,如进程状态、内存使用、网络统计、CPU负载等。 描述中的错误"org....

    Java资源包01

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    MoccaCPU:基于Java的CPU压力测试工具-开源

    1. sigaramd64.dll 和 sigarx86.dll:这些是Sigar库的动态链接库文件,用于跨平台系统监控,例如收集CPU使用率、内存使用情况等系统信息。MoccaCPU可能依赖这个库来获取和展示测试结果。 2. moccacpu.exe:这是...

Global site tag (gtag.js) - Google Analytics