1

我是 sigar 和 java 中的本机库编程的新手,所以也许这只是一个简单的问题,但我自己找不到结果。我在 win 7(64 位)操作系统上使用 eclipse indigo。我已采取以下步骤:

将 sigar.jar 和 log4l.jar 添加到 jre6/lib,将 sigar-amd64-winnt.dll(也是 x86 的文件)文件添加到 ./Program Files/Java/jre6/lib。然后我只想创建一个新的 sigar() 但得到以下异常:

Failed to load sigar-amd64-winnt: java.lang.NullPointerException
org.hyperic.sigar.SigarException: Failed to load sigar-amd64-winnt: java.lang.NullPointerException
    at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:170)
    at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
    at MemExample.<clinit>(MemExample.java:8)
Exception in thread "main" 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 MemExample.getInformationsAboutMemor

我已经尝试操作 VM-Arguments(在 中Run Config -DJava.library.path="path/of/lib"),将 java 构建路径中的本机库设置为 sigar/lib 的路径,并在我自己的程序中使用System.setProperty("path", "-"). 直到现在,所有这些都是不成功的。我一步一步地屈服于绝望。

**编辑:** sigar 是否可能仅适用于 AMD?一些朋友在 AMD 处理器上尝试了相同的代码并获得了 win 7 (32b) 并且它可以工作。我已经在 hyperic sigar 开发者论坛中寻找答案,但我找不到任何有用的提示或答案。

4

1 回答 1

1

似乎缺少 sigar-amd64-winnt.lib:http: //communities.vmware.com/message/1947455#1947455

于 2012-09-10T13:10:15.617 回答