サーバーの現在の負荷を教えてくれる 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
通常、書き込み権限または読み取り権限がない場合にエラーが発生しますが、そうではありません。
したがって、いくつか質問があります。
- インストールを台無しにしましたか?
- はいの場合、どのようにすればよいですか?また、誰かが初心者向けのチュートリアルを教えてもらえますか?
- そうでない場合、どうすればエラーを修正できますか? すでに Eclipse をルートとして実行しようとしましたが、うまくいきませんでした。
時間をありがとう、ペドロ。