Native Library - org.hyperic.sigar.SigarException Failed to load sigar-amd64-winnt java.lang.NullPointerException
Guten Tag zusammen,
ich befasse mich seit einigen Tagen mit der SIGAR API, dennoch komm ich einfach nicht auf die Lösung, drum frag ich einfach mal hier. Und zwar hab ich sigar.jar und log4j.jar bereits in die jre6/lib hinzugefügt und hab die sigar-amd64-winnt.dll (sowie die x86 Files) in den /Program Files/Java/jre6/lib gepackt.
Nun hab ich folgendes Programm vorliegen:
und es wird mir nach Ausführung folgende Exception mitgeteilt:
Ich hab bereits versuch die VM Arguments (in Run Config mit DJava.library.path="path/of/lib") zu manipulieren, über Java Build Path den Native Library Pfad geändert und selbst im Programm den Pfad zu setzen mit System.setProperty("path", "-"), leider haben alle Versuche keinen Erfolg gebracht. Und jetzt fang ich langsam an zu verzweifeln.
Wäre lieb wenn man mir da mal noch Tipps geben könnte
ich befasse mich seit einigen Tagen mit der SIGAR API, dennoch komm ich einfach nicht auf die Lösung, drum frag ich einfach mal hier. Und zwar hab ich sigar.jar und log4j.jar bereits in die jre6/lib hinzugefügt und hab die sigar-amd64-winnt.dll (sowie die x86 Files) in den /Program Files/Java/jre6/lib gepackt.
Nun hab ich folgendes Programm vorliegen:
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
public class MemExample {
private static Sigar sigar = new Sigar();
public static void getInformationsAboutMemory() {
System.out.println("**************************************");
System.out.println("*** Informations about the Memory: ***");
System.out.println("**************************************\n");
Mem mem = null;
try {
mem = sigar.getMem();
} catch (SigarException se) {
se.printStackTrace();
}
System.out.println("Actual total free system memory: "
+ mem.getActualFree() / 1024 / 1024+ " MB");
System.out.println("Actual total used system memory: "
+ mem.getActualUsed() / 1024 / 1024 + " MB");
System.out.println("Total free system memory ......: " + mem.getFree()
/ 1024 / 1024+ " MB");
System.out.println("System Random Access Memory....: " + mem.getRam()
+ " MB");
System.out.println("Total system memory............: " + mem.getTotal()
/ 1024 / 1024+ " MB");
System.out.println("Total used system memory.......: " + mem.getUsed()
/ 1024 / 1024+ " MB");
System.out.println("\n**************************************\n");
}
public static void main(String args) throws Exception{
getInformationsAboutMemory();
}
}
und es wird mir nach Ausführung folgende Exception mitgeteilt:
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.getInformationsAboutMemory(MemExample.java:17)
at MemExample.main(MemExample.java:44)
Ich hab bereits versuch die VM Arguments (in Run Config mit DJava.library.path="path/of/lib") zu manipulieren, über Java Build Path den Native Library Pfad geändert und selbst im Programm den Pfad zu setzen mit System.setProperty("path", "-"), leider haben alle Versuche keinen Erfolg gebracht. Und jetzt fang ich langsam an zu verzweifeln.
Wäre lieb wenn man mir da mal noch Tipps geben könnte
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190565
Url: https://administrator.de/forum/native-library-org-hyperic-sigar-sigarexception-failed-to-load-sigar-amd64-winnt-java-lang-190565.html
Ausgedruckt am: 17.04.2025 um 02:04 Uhr
1 Kommentar