【内部错误】Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: org.hyperic.sigar

严重: 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)

部署到测试环境时候,总是调用不到,然后输出java地址才发现,如下

/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

前的位置(即你的java jdk的bin目录下,注意有可能在linux上面放那边根本没有生效,所以提前打印查看java.library.path路径查找)。

先输出这个路径,打印的地址,然后把相应的动态库放置其中

String path=System.getProperty("java.library.path");

 

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

sigar-amd64-winnt.dll
sigar-x86-winnt.dll
sigar-x86-winnt.lib

好了,到此为止,问题解决。

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

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

下载动态库地址:

https://download.csdn.net/download/u010638673/10837136

你可能感兴趣的:(sigar)