官方的sigar库中并不包含针对arm的本地库(so文件),因此,在pi上的java代码调用sigar库时,会出现找不到库的报错信息:
no libsigar-arm-linux.so in java.library.path.......
因此,如果要用的话,唯一的办法是重新编译和部署arm平台上的库才行。
因为sigar是开源的,所以一切都很简单了。可以看这个帖子:
https://groups.google.com/forum/#!topic/openhab/18C7FYpxWTQ
具体的步骤就是:
在pi的终端上运行下面的命令来编译。
cd /usr/src
sudo wget http://sourceforge.net/projects/sigar/files/sigar/1.6/hyperic-sigar-1.6.4-src.tar.gz
sudo tar -zxfhyperic-sigar-1.6.4-src.tar.gz
cd hyperic-sigar-1.6.4-src/
sudo ant
执行没错误的话,会生成两个文件:sigar.jar和大家期待的libsigar-arm-linux.so,都放在下面这个目录里面:
/usr/src/hyperic-sigar-1.6.4-src/bindings/jara/sigar-bin/lib
不过目前的状态还不能解决问题,因为还差一步部署库,其实就是把so文件放在java的库目录中。
首先,要知道库目录的物理位置,用这个命令看下:
java -XshowSettings:properties
在出现的一堆结果中找以“java.library.path卡头的那一行,可能有好几个值,但至少会有/lib和/usr/lib这俩。
所以,把libsigar-arm-linux.so复制到/lib目录中就可以了。
最后说下关于适应性的问题:
在树莓派2上试验过,能用。在其它平台没试过,有心人可以试试瞧。
不想自己动手的可以从这里下:
http://download.csdn.net/detail/anod/8978171