【问题标题】:How to include SIGAR API in Java Project如何在 Java 项目中包含 SIGAR API
【发布时间】:2012-08-31 11:09:25
【问题描述】:

我是 Java 新手,所以我不知道在我必须使用 Sigar 类的项目中获取下载 zip 文件 (hyperic-sigar-1.6.4.zip) 的人。

我已经尝试导入 Sigar.Jar 文件,但问题是 sigar 中每个类的来源都是未知的。

所以我使用 Eclipse Indigo 进行编程,有人可以帮助我:)

非常感谢您的问候

马库斯

【问题讨论】:

    标签: java eclipse sigar


    【解决方案1】:

    首先您需要将Sigar.jar 添加到您的库中,然后将.so 文件添加到您的库中(您需要为您正在使用的操作系统选择文件)。您可以在"hyperic-sigar-1.6.4/sigar-bin/lib" 中找到这些文件。您可以在示例代码中找到Mem函数的用法:

    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.lang.*;
    
    
    import org.hyperic.sigar.Mem;
    import org.hyperic.sigar.Sigar;
    import org.hyperic.sigar.SigarException;
    
    public class MemExample {
    
        private static Sigar sigar = new Sigar();
    
        public static void getInformationsAboutMemory() {
            System.out.println("**************************************");
            System.out.println("*** Informations about the Memory: ***");
            System.out.println("**************************************\n");
    
            Mem mem = null;
            try {
                mem = sigar.getMem();
            } catch (SigarException se) {
                se.printStackTrace();
            }
    
            System.out.println("Actual total free system memory: "
                    + mem.getActualFree() / 1024 / 1024+ " MB");
            System.out.println("Actual total used system memory: "
                    + mem.getActualUsed() / 1024 / 1024 + " MB");
            System.out.println("Total free system memory ......: " + mem.getFree()
                    / 1024 / 1024+ " MB");
            System.out.println("System Random Access Memory....: " + mem.getRam()
                    + " MB");
            System.out.println("Total system memory............: " + mem.getTotal()
                    / 1024 / 1024+ " MB");
            System.out.println("Total used system memory.......: " + mem.getUsed()
                    / 1024 / 1024+ " MB");
    
            System.out.println("\n**************************************\n");
    
    
        }
    
        public static void main(String[] args) throws Exception{
    
                    getInformationsAboutMemory();
    
                    }
    
    }
    

    【讨论】:

    • 所以我将 sigar.jar 文件添加到我的 JRE 系统库中,并将所有 .so 文件从 hyperic-sigar-1.6.4/sigar-bin/lib 复制到 Java/jre6/lib 但是现在我总是收到消息:
       无法加载 sigar-amd64-winnt:java.lang.NullPointerException org.hyperic.sigar.SigarException:无法加载 sigar-amd64-winnt:org.hyperic 的 java.lang.NullPointerException。 sigar.Sigar.loadLibrary(Sigar.java:170) at org.hyperic.sigar.Sigar.(Sigar.java:100) at MemExample.(MemExample.java:14)  那么怎么了?
    • 同时将此文件 sigar-x86-winnt.lib 添加到您的库中。
    • 我用的是Win 7,64位,那么使用32位库有什么意义呢?但我试过了,结果是一样的。可能是 sigar 函数有错误。但是我没有在课堂上看到,所以我很茫然。
    • 我将完整的 sigar 库添加到我的 jre6/lib,因此它不应该关心使用 jre6/lib(带有 sigar 文件)或 sigar 文件。
    • 在我使用 Ubuntu(64 位)的情况下,我将 sigar.jar 和 libsigar-x86-linux.so 放在我的项目 lib 文件夹中(即 /home/project/Metrics/lib/)它对我来说很好......
    【解决方案2】:

    下载的 zip 将包含一个或两个文件夹,提供如何使用某些功能的示例。该文件夹的示例可以在以下位置找到:

    “hyperic-sigar-1.6.4/bindings/java/examples”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 2013-02-04
      • 2018-06-20
      • 1970-01-01
      • 2012-03-20
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多