关于java使用sigar访问电脑内存信息出现的问题!

山城忙碌人 2012-09-06 10:50:15
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就不行呢?
...全文
874 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙四 2012-09-06
  • 打赏
  • 举报
回复
相关的.dll .so文件呢,放的位置不对吧
山城忙碌人 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

可能不是放到lib目录,试试放到bin目录

引用 4 楼 的回复:

sigar.jar 已经放到项目中!

另外sigar.jar
sigar-amd64-winnt.dll
sigar-x86-winnt.dll
sigar-x86-winnt.lib

我都放在TOMCAT 下的LIB包下了!
[/Quote]

兄弟好像行了哟。我把

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

放到tomcat lib 下面,就正常了!我把其它地方的删除下,看正常不。
龙四 2012-09-06
  • 打赏
  • 举报
回复
可能不是放到lib目录,试试放到bin目录

[Quote=引用 4 楼 的回复:]

sigar.jar 已经放到项目中!

另外sigar.jar
sigar-amd64-winnt.dll
sigar-x86-winnt.dll
sigar-x86-winnt.lib

我都放在TOMCAT 下的LIB包下了!
[/Quote]
山城忙碌人 2012-09-06
  • 打赏
  • 举报
回复
sigar.jar 已经放到项目中!

另外sigar.jar
sigar-amd64-winnt.dll
sigar-x86-winnt.dll
sigar-x86-winnt.lib

我都放在TOMCAT 下的LIB包下了!
龙四 2012-09-06
  • 打赏
  • 举报
回复
放到web容器后,使用的是容器自定义的类加载器,然后它可能就找不到dll或so了

[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

相关的.dll .so文件呢,放的位置不对吧



如果不对,为什么MAIN方法又能正常运行呢?
[/Quote]
山城忙碌人 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

相关的.dll .so文件呢,放的位置不对吧
[/Quote]


如果不对,为什么MAIN方法又能正常运行呢?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧