Sigar UnsatisfiedLinkError

Eu sou novo em Sigar. Eu gostaria de executar um teste simples para saber como posso monitorar meu sistema.

Eu adicionei sigar-1.6.4 e log4j como bibliotecas externas, mas quando eu vou executá-lo, eu enfrento esse erro:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Sigar.getCpuInfoList()[Lorg/hyperic/sigar/CpuInfo; at org.hyperic.sigar.Sigar.getCpuInfoList(Native Method)

Aqui está o meu código:

 import java.util.Map; import org.hyperic.sigar.CpuInfo; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.Sigar; import org.hyperic.sigar.SigarException; public class Test { /** * @param args */ public static void main(String[] args) { Sigar sigar = new Sigar(); CpuInfo[] cpuinfo = null; try { cpuinfo = sigar.getCpuInfoList(); } catch (SigarException se) { se.printStackTrace(); } System.out.println("---------------------"); System.out.println("Sigar found " + cpuinfo.length + " CPU(s)!"); System.out.println("---------------------"); } } 

Qualquer ajuda seria apreciada.

Eu entendi o problema!
Eu tenho que usar o seguinte argumento da JVM:

 -Djava.library.path="./lib" 

em Configuração de Execução, guia Argumentos, argumentos da VM no eclipse, enquanto a contnet do sigar-bin / lib está na pasta lib.

Sigar trabalha via JNI. Como tal, o arquivo .so ou .dll apropriado precisa estar no caminho especificado pela propriedade java.library.path.

Verifique sua distribuição sigar – o arquivo zip, quero dizer. Descompacte-o e copie o conteúdo de sigar-bin \ lib para um local acessível por suas variables ​​de ambiente Path, PATH e LD_LIBRARY_PATH. Normalmente, apenas um arquivo precisa estar acessível por plataforma.

Isso deve fazer o truque, se não, deixe-me saber e eu vou ver o que posso fazer.