我需要一个可以告诉我服务器当前负载的 Java 库,所以在搜索后我发现SIGAR目前是社区中最知名和最受接受的。
我正在使用 Linux Mint 64 位作为操作系统(它是对 Ubuntu 的轻微修改),因为这是我第一次使用这样的库,所以我使用 Eclipse 从零开始创建了一个新项目,并决定通过以下方式在其上安装 SIGAR:
- 下载并解压 ZIP 文件
- 在我的新 Java 项目中创建一个名为“libs”的文件夹
- 将 Sigar.jar 和 libsigar-amd64-linux.so 文件复制到“libs”文件夹中
- 右键单击项目 -> 属性 -> Java 构建路径 -> 库 -> 添加外部 JAR -> 添加 Sigar.jar
- 交叉手指并运行项目
但是,当我运行该项目时,出现以下错误:
/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
当我没有写入或读取权限时,通常会发生错误,但事实并非如此。
因此,我有一些问题:
- 我搞砸了安装吗?
- 如果是,我应该怎么做,有人可以指点我初学者教程吗?
- 如果没有,我该如何解决这个错误?我已经尝试以 root 身份运行 Eclipse,但它不起作用。
谢谢你的时间,佩德罗。