Native Library / Fehler beim Laden der .so/.dll Datei

Hallöle,
ich hab eine .Jar Datei der JRE System Library hinzugefügt (sigar.jar).
Nun kann ich wie gewollt erfolgreich auf die packages und so zugreifen, die benötigten .so / .dll Dateien habe ich über die Fenster manuell in Java/jre6/lib hineinkopiert.

Nun zu meinem Programm:
Java:
import java.io.*;
import java.util.*;
import java.text.*;
import java.lang.*;


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 nach ausführung erhalte ich folgende Fehlermeldung:

Java:
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:14)
**************************************
*** Informations about the Memory: ***
**************************************

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:23)
	at MemExample.main(MemExample.java:48)

Wo liegt mein Problem?! Bzw wie bekomme ich das hin, dass die sigar api weiß wo die .so / .dll files sind?
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
Java schaut nach native Libs im sog. Library Path. Standardmäßig zeigt dieser mindestens auf die Library-Verzeichnisse des jeweiligen OS (/usr/lib bei Unix, system32 bei Windows). Da legt man seine eigenen Libraries aber selten ab. Wenn man sie in einem anderen Verzeichnis ablegt, muss man dieses noch zum Library-Path hinzufügen.
 
Ich hab ja schon versucht mittels Java Build Path > Libraries > JRE System Library [jre6] > Native Library Location > ... und dann den Java/jre6/lib Pfad als location Folder eingegeben...

das ganze hab ich auch mit
Java Build Path > Source > ../src > Native Library Location > ... und dann den Pfad...

beides funktioniert nicht ;)
 

Nardian

Bekanntes Mitglied
Hi,

Wie nillehammer schon darauf hingewiesen hat, könntest du dir den library-path genauer ansehn.
Um herauszufinden wo sich dieser (bzw diese) auf deinem rechner befinden, führe das hier mal aus (vielleicht in einer eigenen main, da dein Proggy nichtmal zur main kommt, da ihm die imports fehlen)

Java:
System.out.println(System.getProperty("java.library.path"));

Ansonsten, wenn du diese .jar nur für dieses eine Programm benötigst, könntest du dir überlegen es ins root-verzeichnis des Programms (nicht auf / unter linux) einfach hinzukopieren. Dieser sollte meines Wissens nach auch "gescannt" und somit gefunden werden.

MfG
 
Also mein Path ist:

Java:
C:\Program Files\Java\jre6\lib;C:\Program Files\Java\jre6\lib

und dein anderer Link bringt mir leider nix, da ich nicht die rechte hab in der .Jar datei zu ändern und diese Meckert ja das sie die dateien nicht findet

Ich habe die .so/.dll daten für
Windows x86 NT 4.0, 2000 Pro/Server, 2003 Server, XP, Vista, 2008 Server, 7
Windows x64 2003 Server, Vista, 2008 Server, 7

also darin sollte es nicht liegen...
 
N

nillehammer

Gast
Das sieht mehr nach einem Classpath für Java-Libraries aus, nicht nach einem Library-Path für native Libraries. Führ mal Nardians Code aus. Der wird Dir sicherlich etwas anderes zeigen. Wenn in der Ausgabe Dein Verzeichnis erscheint, dann ist gut.
 

Nardian

Bekanntes Mitglied
Der Hinweis mit dem "ins root kopieren" war schon so gemeint.. Ich meinte nich du sollst die .jar ändern, sondern ins root von DEINEM Programm kopieren.
Ich kenns von zb der OpenGL-Anbindung für Java (JOGL), dass es dort auch paar .jar Dateien gibt, und ich noch extra .dll's in den root von meinem Projekt kopieren musste (an der .jar hab ich auch nichts geändert).

Sicher, ist nur geraten dass es so sein könnte, aber versuchen kostet nix.
 
Das sieht mehr nach einem Classpath für Java-Libraries aus, nicht nach einem Library-Path für native Libraries. Führ mal Nardians Code aus. Der wird Dir sicherlich etwas anderes zeigen. Wenn in der Ausgabe Dein Verzeichnis erscheint, dann ist gut.

Die Ausgabe ist

Java:
C:\Program Files\Java\jre6\lib;C:\Program Files\Java\jre6\lib

und ja da befinden sich auch die dateien
sigar-amd64-winnt.dll
und falls java mit 64 nicht klar kommt (was eigentlich nicht sein kann, weil bisher alles gepasst hat) auch
sigar-x86-winnt.dll

Wie kopiere ich die denn ins root? ich hab win 7 64Bit ... nicht Linux ^^
 

Marco13

Top Contributor
Er findet offenbar die Bibliothek, aber nicht die Funktion "org.hyperic.sigar.Mem.gather(Lorg/hyperic/sigar/Sigar;)V". (Das nur nebenbei, eine Lösung wüßte ich auch nicht, das müßte ich mir näher ansehen...)
 
Also ich hab mal weiter gegooglet:

Folgende Lösungsmöglichkeiten gefunden, welche mir bei meinem Problem leider auch nicht helfen:
1)
Java:
System.setProperty("path", "-")
2) Run Configuration > VM Arguments > DJava.library.path="path/of/the/lib"

Also wie könnte man noch das Probelm beheben? Ich meine das Programm findet ja die lib nur das Laden der .dll funktioniert nicht.
 

Nardian

Bekanntes Mitglied
Sorry wenn ich falsch liege, aber hast du wirklich schon mal versucht die dlls in deinen programm-Root zu kopieren? Also nich in die jar rein, sondern wenn du zb eclipse verwendest direkt neben die .project file.

musste ich damals mit JOGL (Javas anbindung zu OpenGL) auch machen - alternativ dazu war ein eigener classloader, aber sowas ist meist eher mühsam.
 

Marco13

Top Contributor
Tja, hab' gerade mal ein minimalistisches Testprogramm in den lib-Ordner von Sigar kopiert, compiliert und gestartet und das ging - war aber auf WinXP. Also entweder das kommt nicht mit Win7 klar, oder du hast beim Angeben der native library location was falsch gemacht. Vielleicht kanns ja noch jemand auf Win7 testen, um das auszuschließen.
 

Nardian

Bekanntes Mitglied
Sorry, aber es liegt wohl nich an der library...

ich hab win7, eclipse juno und java 7. hab die sigar.jar zum buildpath eingebunden, und die eine sigar-amd64-winnt.dll in den root vom projekt kopiert und das testprogramm vom 1. post läuft fehlerfrei.

keine ahnung ob es einen unterschied macht, aber hast du vielleicht nen intel? könnte sein dass das teil was recht spezifisches mit amd prozessoren machen will, was intel nicht unterstützt?
wie gesagt, kann auch reiner blödsinn sein, ist nur geraten.. aber die jar und die dll funktionieren.
 
gut ich hab natürlich einen Intel, ich hoffe mal das es nicht daran liegt.
werde jetzt noch mal alles neu machen, .dll ins root und sigar.jar in den buildpath einbinden...

wenns dann nicht klappt muss ich halt auf javamelody umsteigen :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
F Java Native/Shared Library (.so) laden macht Probleme Allgemeine Java-Themen 3
reibi JNA - Native Acess - Library Path Allgemeine Java-Themen 2
G RXTX native library unter Linux in jar build angeben Allgemeine Java-Themen 4
T Native Library ausliefern Allgemeine Java-Themen 12
J Native Library einbinden Allgemeine Java-Themen 17
RalleYTN Classpath Native Dateien(DLL, SO, JNILIB) Allgemeine Java-Themen 2
W Java Native Interface und "mp3player" Allgemeine Java-Themen 3
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
L Native Bilbiothek exportieren Allgemeine Java-Themen 10
G Webstart Java Web Start und native Bibliotheken Allgemeine Java-Themen 3
KrokoDiehl JNI: native im Interface Allgemeine Java-Themen 4
KrokoDiehl thread-unsichere, native Bibliotheken Allgemeine Java-Themen 11
M Java Web Start - Native DLL einbinden Allgemeine Java-Themen 2
M Java native C# Allgemeine Java-Themen 2
F GCJ bzw. native Java-Programme Allgemeine Java-Themen 7
B Native DLL zweimal laden: System.load(sPath); Allgemeine Java-Themen 5
S native methoden in try / catch ? Allgemeine Java-Themen 3
L Native Threads unter Linux? Allgemeine Java-Themen 2
G Java-Befehle Native und Static Allgemeine Java-Themen 2
minzel Java Native Interface Allgemeine Java-Themen 9
M unable to create new native thread Allgemeine Java-Themen 6
S komplett in native kompilieren Allgemeine Java-Themen 6
G jar archiv und native klassen (pfad angabe) Allgemeine Java-Themen 2
C Java Native binding Code will nicht so ganz Allgemeine Java-Themen 2
M Threads (Native oder Green) Allgemeine Java-Themen 2
D unable to create new native thread Allgemeine Java-Themen 1
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
D Open Source Library zum erstellen von PDFs Allgemeine Java-Themen 1
webracer999 Library für Textsuche (z. B. include/exclude, and/or)? Allgemeine Java-Themen 5
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
I OCR Library für Belegerkennung Allgemeine Java-Themen 7
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
O Arrays an DOCX-Stamper Library übergeben Allgemeine Java-Themen 1
TheWhiteShadow 2D-Grafik GIF Library mit byte output Allgemeine Java-Themen 10
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
A Classpath Library in verschiedenen Projekten Allgemeine Java-Themen 2
O Standard library nativer C code Allgemeine Java-Themen 1
B OCR Library gesucht Allgemeine Java-Themen 6
S Anwendung die alle Abhaengigkeiten einer Library listet..? Allgemeine Java-Themen 5
Tausendsassa Kabeja Library Allgemeine Java-Themen 9
4a61766120617274697374 PDF library Allgemeine Java-Themen 5
D Library/Framework zum Umwandeln von Sound in Notenbilder Allgemeine Java-Themen 1
S Classpath Wie kann ich Java-Library Klassen "verstecken"..? Allgemeine Java-Themen 4
J Lanterna Library Allgemeine Java-Themen 2
F rxtx library mit virtuellem Comport Allgemeine Java-Themen 2
chuxXo JAVA MP3 Library Allgemeine Java-Themen 11
F Frage zur Library JTS Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
G USB Library Allgemeine Java-Themen 1
B Load Library and use JNA to access Allgemeine Java-Themen 3
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
B IRC-Library Gesucht Allgemeine Java-Themen 2
N DTAU Library Allgemeine Java-Themen 2
H java.library.path mit einer Batch-Datei einstellen Allgemeine Java-Themen 3
B NetBeans Library nicht gefunden Allgemeine Java-Themen 6
T Einbinden einer Library in NetBeans Allgemeine Java-Themen 3
S RXTX library in Jar einbinden Allgemeine Java-Themen 5
R JNI load so-library Allgemeine Java-Themen 4
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
ruutaiokwu META-INF-daten bei ungepackten library-projekten während der entwicklung mit einbeziehen...? Allgemeine Java-Themen 2
I Library für High Performance Mime Type Erkennung Allgemeine Java-Themen 8
C Jni Library/dll erstellen Allgemeine Java-Themen 4
G Suche "richtiges" Framework/Library Allgemeine Java-Themen 14
G Library für CNC Programme Allgemeine Java-Themen 2
T Mathematik Parser Library? Allgemeine Java-Themen 4
P jar <-> Library Allgemeine Java-Themen 2
nrg Externe Library Lizenzen Allgemeine Java-Themen 14
D plattformabhängige library ausblenden Allgemeine Java-Themen 4
S 3D Grafik Library? Allgemeine Java-Themen 5
Lufti Unterschied zwischen Djava.library.path und Class-Path im Manifest? Allgemeine Java-Themen 2
N Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.p Allgemeine Java-Themen 4
P SUCHE: gute Geo Library (freeware) Allgemeine Java-Themen 2
P Suche performante PDF Library Allgemeine Java-Themen 20
S suche library die diagramme darstellen kann Allgemeine Java-Themen 2
G RXTX library braucht sehr lange zum laden. Ist das normal? Allgemeine Java-Themen 8
A Strings joinen, Standard-Library? Allgemeine Java-Themen 9
F Java Library für Videobearbeitung, edit, cut, encode. Allgemeine Java-Themen 6
P MP3-Player Library: MP3 abspielen und ID-Tags auslesen Allgemeine Java-Themen 12
D PDF library Allgemeine Java-Themen 6
J ICQ Library Allgemeine Java-Themen 6
C Speicherlecks in externer Library Allgemeine Java-Themen 2
A java.library.path festlegen. Allgemeine Java-Themen 5
G C++ Library in Java einbinden Allgemeine Java-Themen 4
C ICQ Library Allgemeine Java-Themen 3
M JNI, static.a mit load.Library laden? Allgemeine Java-Themen 2
T Disk Image Library (iso,mdf,nrg,bin) Allgemeine Java-Themen 6
cowabunga1984 Library um TIF in PDF zu konvertieren Allgemeine Java-Themen 2
foobar java.library.path Property setzen Allgemeine Java-Themen 5
F POI Library - Graphic in Excel inserten möglich? Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben