私は Java での sigar およびネイティブ ライブラリ プログラミングは初めてなので、単純な問題かもしれませんが、自分で結果を見つけることができません。Win 7(64ビット)OSで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 (in Run Config -DJava.library.path="path/of/lib"
) を操作して、Java ビルド パスのネイティブ ライブラリを sigar/lib のパスに設定し、プログラムの Systempath を自分でSystem.setProperty("path", "-")
. どれもこれまでに成功していません。そして一歩一歩、絶望に屈する。
**編集:** sigar が AMD でのみ動作する可能性はありますか? 一部の友人は、AMD プロセッサと win 7 (32b) で同じコードを試しましたが、うまくいきました。hyperic sigar 開発者フォーラムで既に回答を探していますが、役立つヒントや回答が見つかりません。