【问题标题】:Failed to load sigar-amd64-winnt: java.lang.NullPointerException未能加载 sigar-amd64-winnt:java.lang.NullPointerException
【发布时间】:2021-01-09 10:06:54
【问题描述】:

我是 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 的路径,并自行在程序中设置 Systempath System.setProperty("path", "-")。直到现在,所有这些都是不成功的。 一步一步让我绝望。

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

【问题讨论】:

  • 不要将 Jars 或 native 放入任何 JRE。将它们添加到运行时类路径或库路径。
  • 你把dll放在哪里了?因为很有可能 dll 不在正确的路径中。
  • 问题是,我怎样才能让程序工作。 Java/jre6/lib 容器中的 .dll 文件。
  • 有谁知道amd处理器有没有依赖?因为我使用的是英特尔。

标签: java nullpointerexception sigar


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多