前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sigar进行JAVA后台系统资源监控错误:java.lang.UnsatisfiedLinkError

sigar进行JAVA后台系统资源监控错误:java.lang.UnsatisfiedLinkError

作者头像
浩Coding
发布2019-07-03 15:52:56
5.3K0
发布2019-07-03 15:52:56
举报
文章被收录于专栏:浩Coding

不想看长篇大论的看这里解决步骤

1:java -verbose 找到jdk安装目录。

2:下载地址:

代码语言:javascript
复制
https://download.csdn.net/download/qq_39025156/10428175

Windows系统下载这三个文件:sigar-amd64-winnt.dll、sigar-x86-winnt.dll、sigar-x86-winnt.lib。放到jdk安装目录即可!

sigar简介

Sigar全名是System Information Gatherer And Reporter,中文名是系统信息收集和报表工具。是一个开源的工具,提供了跨平台的系统信息收集的API ,它用来从许多平台收集系统和处理信息,这些平台包括:Linux,Windows,Solaris,AIX,HP-UX,FreeBSD和Mac OSX。

可以收集的信息:

代码语言:javascript
复制
CPU信息:包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)
文件系统信息:包括Filesystem、Size、Used、Avail、Use%、Type
事件信息:类似Service Control Manager
内存信息:物理内存和交换内存的总数、使用数、剩余数;RAM的大小
网络信息:包括网络接口信息和网络路由信息
进程信息:包括每个进程的内存、CPU占用数、状态、参数、句柄
IO信息:包括IO的状态,读写大小等
服务状态信息
系统信息:包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等

Java项目操作:

在自己的Java项目中引入sigar.jar。

同时将对应的dll文件或者so文件添加到系统目录。例如:windows下把sigar-x86-winnt.dll添加到c:\WINDOWS\system32或者jdk的bin目录。其中:

代码语言:javascript
复制
Windows操作系统下Sigar.jar 依赖:sigar-amd64-winnt.dll或sigar-x86-winnt.dll
linux 操作系统下则依赖:libsigar-amd64-linux.so或libsigar-x86-linux.so。

java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Mem.gather错误详情:

代码语言:javascript
复制
严重: Servlet.service() for servlet [springmvc] in context with path [/Haiwan] threw exception [Handler processing failed; nested exception is java.lang.UnsatisfiedLinkError: 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(Native Method)
at org.hyperic.sigar.Mem.fetch(Mem.java:30)
at org.hyperic.sigar.Sigar.getMem(Sigar.java:304)
at com.haiwan.util.SystemInfo.usage(SystemInfo.java:95)
at com.haiwan.controller.system.MonitorController.usage(MonitorController.java:73)

从第三行,我们可以看出,这是由于JVM在连接Sigar时出了错。查了相关资料,可以知道,这是一个JNI调用的问题。只是由于需要检测系统信息,所以需要将调用的动态库放置到JVM的调用路径下去:

也就是:

代码语言:javascript
复制
String path=System.getProperty("java.library.path");

path中第一个 ;前的位置(即你的java jdk的bin目录下:例如我的是C:\Program Files\Java\jre7\bin)。

具体的动态库,在Windows下是这三个文件:

代码语言:javascript
复制
sigar-amd64-winnt.dll
sigar-x86-winnt.dll
sigar-x86-winnt.lib

查看自己jdk安装目录:cmd -- java -verbose

其他系统需要另行选择,库的列表如下:

代码语言:javascript
复制
lib/libsigar-amd64-freebsd-6.so
lib/libsigar-amd64-linux.so
lib/libsigar-amd64-solaris.so
lib/libsigar-ia64-hpux-11.sl
lib/libsigar-ia64-linux.so
lib/libsigar-pa-hpux-11.sl
lib/libsigar-ppc64-aix-5.so
lib/libsigar-ppc64-linux.so
lib/libsigar-ppc-aix-5.so
lib/libsigar-ppc-linux.so
lib/libsigar-s390x-linux.so
lib/libsigar-sparc64-solaris.so
lib/libsigar-sparc-solaris.so
lib/libsigar-universal64-macosx.dylib
lib/libsigar-universal-macosx.dylib
lib/libsigar-x86-freebsd-5.so
lib/libsigar-x86-freebsd-6.so
lib/libsigar-x86-linux.so
lib/libsigar-x86-solaris.so
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不想看长篇大论的看这里解决步骤:
  • sigar简介
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档