Sylvihasi Geschrieben 27. April 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 27. April 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sylvihasi Geschrieben 27. April 2006 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 27. April 2006 Teilen Geschrieben 27. April 2006 Probier doch mal deine Library statisch zu komiplieren (also *.a). Da gibts manchmal die merkwürdigsten Dinge. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sylvihasi Geschrieben 4. Mai 2006 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.