アプリケーションでシステム情報を検索する必要があり、そのために次の 2 つのネイティブ ライブラリ ファイルがあります:
SystemManagerLinux.so
とSystemManagerWin32.dll
.
Java GUI に関する情報を表示するには、Java コードでこれらのライブラリ ファイルを使用する必要があります。私はこれらのファイルを次の場所に配置しました:C:\Users\surjit\Documents\NetBeansProjects\SampleMonitor
そして、以下に示すように、実行オプションで netbeans ide の vm 引数として与えます:
-Djava.library.path="C:\Users\surjit\Documents\NetBeansProjects\SampleMonitor"
コードのようにライブラリを呼び出します:
if (os.startsWith("Linux"))
loadTmpLibrary("SystemManagerLinux.so", "libSML", ".so");
else if (os.startsWith("Windows")) {
loadTmpLibrary("SystemManagerWin32.dll", "SMW", ".dll");
しかし、アプリケーションを実行していると、次のエラーが発生します。
Exception in thread "main" java.lang.UnsatisfiedLinkError: SystemManagerWin32.fetchProcessIDs([I)I
at SystemManagerWin32.fetchProcessIDs(Native Method)
at SystemMonitor.refreshPidList(SystemMonitor.java:168)
at SystemMonitor.<init>(SystemMonitor.java:383)
at SystemMonitor.main(SystemMonitor.java:494)
Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: SystemManagerWin32.fetchSystemMemoryStatus(LSystemMemoryStatus;)Z
at SystemManagerWin32.fetchSystemMemoryStatus(Native Method)
at SystemMonitor.run(SystemMonitor.java:410)
at java.lang.Thread.run(Thread.java:722)
解決策を提案してください。ありがとう