关于java使用sigar访问电脑内存信息出现的问题!
1:代码如下:
MemoryBean bean = new MemoryBean();
Sigar sigar = new Sigar();
CpuPerc cpu = sigar.getCpuPerc();
bean.setCpuUser("用户使用CPU情况:" + CpuPerc.format(cpu.getUser()).replace("%", ""));
bean.setCpuSys("系统使用CPU情况:" + CpuPerc.format(cpu.getSys()).replace("%", ""));
bean.setCpuTotal("电脑使用CPU情况:" + CpuPerc.format(cpu.getCombined()).replace("%", ""));
Mem mem = sigar.getMem();
bean.setMemoryTotal("电脑内存总数:" + (mem.getTotal() / 1024 / 1024-mem.getTotal() / 1024 / 1024));
bean.setMemoryUse("内存使用数量:" + (mem.getTotal() / 1024 / 1024-mem.getUsed() / 1024 / 1024));
bean.setMemoryUnused("内存未用数量:" + (mem.getTotal() / 1024 / 1024-mem.getFree() / 1024 / 1024));
这段代码在main方法运行正常,没有任何问题,但放在action通过浏览器访问运行就报错(
调用的同一个类,同一个方法),sigar.jar是正常导入的!
异常如下:
java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Cpu.gather(Lorg/hyperic/sigar/Sigar;)V
但我在JAR包下面能找到这个方法,并且MAIN方法运行正常,为什么action就不行呢?
------解决方案--------------------
可能不是放到lib目录,试试放到bin目录