Wie man einen Java system.loadlibrary Fehler in Linux debuggt?

Ich habe ein Java-Programm, das C-Code über JNI aufruft und das ich unter Linux ausführen möchte. Der externe Code besteht aus zwei .so-Dateien: eine für die (mit swig erstellten) JNI-Bindungen und die andere für die eigentlichen Funktionen. Ich habe die zwei Bibliotheken im gleichen Verzeichnis und LD_LIBRARY_PATH ist richtig eingestellt. ldd meldet keine Probleme bei der Ausführung über die Befehlszeile, aber wenn ich LD_LIBRARY_PATH im Dialogfeld "Konfigurationen ausführen" des Eclipse-Editors auf denselben Wert setze und versuche, das Programm auszuführen, wird der folgende Fehler angezeigt:

java.lang.UnsatisfiedLinkError: [Pfad zu Bibliotheken] / [JNI-Bindungsbibliothek] .so: [tatsächliche Codebibliothek] .so: Shared Object-Datei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Dies lässt mich glauben, dass die JNI-Wrapperbibliothek erfolgreich geladen wurde, aber es gibt einen Fehler, wenn diese Bibliothek versucht, die Bibliothek mit dem tatsächlichen Code zu laden. Gibt es eine Möglichkeit, dies weiter zu debuggen?

Ich werde weiterhin bemerken, dass dieses Problem im Eclipse-Editor selbst auftritt und dass ich nicht versucht habe, den Code in eine JAR-Datei zu packen und in einer eigenständigen JVM-Instanz auszuführen.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage