Sigar全称是SystemInformation Gatherer And Reporter,中文名是系统信息收集和报表工具。要想使用sigar是不是引入了Sigar.jar(Sigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据。)就ok了呢?非也。
即便在pom文件中配置好了sigar:
<dependency>
<groupId>org.fusesource</groupId>
<artifactId>sigar</artifactId>
<version>1.6.4</version>
</dependency>
运行一下也会报错java.lang.UnsatisfiedLinkError。这个异常表示找不到本地类库。native方法声明错误等情况下出现,一般是因为缺少某些dll或加载dll时出错。
那么都需要补充哪些文件呢?这要分Windows和Linux系统两种情况。
Linux操作系统下Sigar.jar依赖libsigar-amd64-linux.so或libsigar-x86-linux.so,将他们置于/usr/lib下即可。
Windows操作系统下Sigar.jar依赖sigar-amd64-winnt.dll、sigar-x86-winnt.dll、jug--asl.jar、junit.jar、log4j.jar。比如sigar-1.6.4这个版本,引用的其他jar包的版本如下即可:
注意要将这些文件全部放入你的jdk/jre/bin目录下,记得是全部,假如只丢入Sigar.jar、sigar-amd64-winnt.dll、sigar-x86-winnt.dll还是会同样的报错。