Sylvihasi Geschrieben 27. April 2006 Geschrieben 27. April 2006 Hallo, ich versuche derzeit ein auf Windows geschriebenes Java Native Interface (JNI) Projekt (1Jar, 2DLL's) auf Solaris zu portieren. Mein Jar-File funktioniert einwandfrei. Eine dll wurde von einem ehemaligen Kollegen als normlib.a auf Solaris portiert. Ich habe nun ein weiteres c++ File geschrieben, welches die JNI-Funktionalität beinhaltet und zusätzlich die schon vorhandene normlib.dll bzw das normlib.a als Library verwendt. Auf Windows funktioniert dies auch einwandfrei. Nur auf Solaris... Ich habe mein c++ File zu einem lib.so umgewandelt (aber weis nicht ob alles richtig eingebunden ist). Wenn ich nun mein Jar-File aufrufe kommt ein java.lang.UnsatisfiedLinkError: no lib in java.library.path at java.lang.ClassLoader.loadLibrary ... Daher ich glaube das ich einfach einen Path nicht richtig gesetzt habe und er das so-File in einem ganz anderen Verzeichnis als dem aktuellen sucht. --> Was muss ich denn alles gesetzt haben ? PATH,... ? Oder das die Compilierung meiner c++ Sourcen nicht stimmte. --> pwd: /usr/sfw/bin ./g++ /Sylvi/scr/norm.cpp -I /Sylvi/src/include -L /Sylvi/src/library -G -o lib.so (im src : norm.cpp | im src/include: jni.h, jni_md.h, norm.h | im src/library: normlib.a) Ich brauche dringend Hilfe !!! :confused: Danke Sylvi
perdian Geschrieben 27. April 2006 Geschrieben 27. April 2006 Probier mal den Aufruf deiner Applikation zu erweitern um: java -Djava.library.path=/wo/die/libary/liegt/ -cp classes your.package.ClassName
Sylvihasi Geschrieben 27. April 2006 Autor Geschrieben 27. April 2006 Es hat leider nichts gebracht. Er sagt immer noch, dass er die Lib nicht finden kann. Vielleicht ist ja echt ein fehler in einer der shared libraries ... Kann ich unter Solaris irgendwie die Exportfunktionen einer .so ausgeben lassen ? LG Sylvi
etreu Geschrieben 27. April 2006 Geschrieben 27. April 2006 Probier doch mal deine Library statisch zu komiplieren (also *.a). Da gibts manchmal die merkwürdigsten Dinge.
Sylvihasi Geschrieben 4. Mai 2006 Autor Geschrieben 4. Mai 2006 Keine Chance habe die .a zu einer .so neu compiliert. Habe die 2. .so neu compiliert und versucht mein Jar-File zu starten. Ich habe es auch mit dem : java -Djava.library.path=/Sylvi/norm_solaris/ -cp norm.jar package.Start 12345678 java -Djava.library.path=./ -cp norm.jar package.Start 12345678 --------------------------------------------------------------- Aber es läuft wieder auf den java.lang.UnsatisfiedLinkError hinaus. Ich weis nicht mehr wo das Jar noch sucht. Doch leider muss ich den Fehler bis morgen finden. In welchem Pfad sucht Java auf Solaris eine C++Library ??? LG Sylvi
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden