java程序加载sigar库报异常的错误的解决

本文介绍Sigar,一个跨平台系统信息收集工具。它提供了丰富的API供多种语言调用,如C/C++、Java等。文章详细阐述了如何在Java中使用Sigar库,并解决了一个在Windows 10系统上遇到的异常问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:朱金灿

来源:http://blog.youkuaiyun.com/clever101

 

        Sigar(System Information Gatherer AndReporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。

 

可以被以下语言调用:

 

C/C++

Java (sigar.jar auto-loads the nativelibrary)

Perl (requires bindings/perl build)

.NET C# (requires bindings/csharp build)

Ruby (requires bindings/ruby build)

Python (requires bindings/python build)

PHP (requires bindings/php build)

Erlang (requires bindings/erl build)

可以收集的信息包括:

1, CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)

2,文件系统信息,包括Filesystem、Size、Used、Avail、Use%、Type

3,事件信息,类似Service Control Manager

4,内存信息,物理内存和交换内存的总数、使用数、剩余数;RAM的大小

5,网络信息,包括网络接口信息和网络路由信息

6,进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄

7, IO信息,包括IO的状态,读写大小等

8,服务状态信息

9,系统信息,包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等.

 

          现在编写了一个java程序在sigar库的接口,在一台Win10系统的机器上运行出现异常:

org.hyperic.sigar.Mem.gather(Lorg/hyperic/sigar/Sigar;)V]with root cause

java.lang.UnsatisfiedLinkError:org.hyperic.sigar.Mem.gather(Lorg/hyperic/sigar/Sigar;)V

at org.hyperic.sigar.Mem.gather(NativeMethod)

at org.hyperic.sigar.Mem.fetch(Mem.java:30)

at org.hyperic.sigar.Sigar.getMem(Sigar.java:304)

atcom.haiwan.util.SystemInfo.usage(SystemInfo.java:95)

atcom.haiwan.controller.system.MonitorController.usage(MonitorController.java:73)

 

        网上搜了一些资料,得知是由于java程序没找到sigar库所在路径造成的,需要把把sigar-x86-winnt.dll\sigar-x86-winnt.lib拷贝到java jdk的bin目录下(比如我的是:D:\Program Files (x86)\Java\jre7\bin)。

参考文献:

 

1. sigar进行JAVA后台系统资源监控错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clever101

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值