0

我需要一个可以告诉我服务器当前负载的 Java 库,所以在搜索后我发现SIGAR目前是社区中最知名和最受接受的。

我正在使用 Linux Mint 64 位作为操作系统(它是对 Ubuntu 的轻微修改),因为这是我第一次使用这样的库,所以我使用 Eclipse 从零开始创建了一个新项目,并决定通过以下方式在其上安装 SIGAR:

  1. 下载并解压 ZIP 文件
  2. 在我的新 Java 项目中创建一个名为“libs”的文件夹
  3. 将 Sigar.jar 和 libsigar-amd64-linux.so 文件复制到“libs”文件夹中
  4. 右键单击项目 -> 属性 -> Java 构建路径 -> 库 -> 添加外部 JAR -> 添加 Sigar.jar
  5. 交叉手指并运行项目

但是,当我运行该项目时,出现以下错误:

/media/data/Users/pedro/SIGAR/libs/libsigar-amd64-linux.so: /media/data/Users/pedro/SIGAR/libs/libsigar-amd64-linux.so: failed to map segment from shared object: Operation not permitted
org.hyperic.sigar.SigarException: /media/data/Users/pedro/SIGAR/libs/libsigar-amd64-linux.so: /media/data/Users/pedro/SIGAR/libs/libsigar-amd64-linux.so: failed to map segment from shared object: Operation not permitted
    at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
    at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
    at examples.Shell.<init>(Shell.java:50)
    at examples.SigarCommandBase.<init>(SigarCommandBase.java:75)
    at examples.CpuInfo.<init>(CpuInfo.java:36)
    at examples.CpuInfo.main(CpuInfo.java:97)
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Sigar.getCpuInfoList()[Lorg/hyperic/sigar/CpuInfo;
    at org.hyperic.sigar.Sigar.getCpuInfoList(Native Method)
    at examples.CpuInfo.output(CpuInfo.java:60)
    at examples.SigarCommandBase.processCommand(SigarCommandBase.java:186)
    at examples.CpuInfo.main(CpuInfo.java:97)

我检查了互联网,Operation not permitted当我没有写入或读取权限时,通常会发生错误,但事实并非如此。

因此,我有一些问题:

  1. 我搞砸了安装吗?
  2. 如果是,我应该怎么做,有人可以指点我初学者教程吗?
  3. 如果没有,我该如何解决这个错误?我已经尝试以 root 身份运行 Eclipse,但它不起作用。

谢谢你的时间,佩德罗。

4

0 回答 0