@mmyers Vielen Dank für Ihre Antwort. Wir fanden heraus, dass wir nur System.loadLibrary in System.load ändern mussten und den vollständigen Pfad + Dateiname als Argument übergeben mussten, was wie ein Zauber wirkte.
Schon vorher haben wir versucht, den Parameter "-D" zu verwenden und LD_LIBRARY_PATH zu setzen, aber wir waren nicht erfolgreich.
Geh Figur! :)
Nochmals vielen Dank, Karen
Ich denke, einige Punkte sind hilfreich, wenn Sie diesen Fehler erhalten:
System.loadLibrary("HelloWorld");
libHelloWorld.so
libHelloWorld.so
HelloWorld.dll
libHelloWorld.jnilib
-Djava.library.path=PATH
hinzu. PATH
, wo Sie Ihre jni-Bibliothek platzieren Hier ist meine Referenz: Ссылка
Ich hatte dieses Problem und reparierte es, indem ich meine Bibliothek in libHelloWorld.so
umbenannte und Michael Myers Vorschlag folgte. Ich bin auf Arch Linux 64-Bit.
HelloWorld.c
:
HelloWorld.java
:
Bauen und Testen:
%Vor% tl; dr: Setzen Sie lib
am Anfang des Dateinamens der Bibliothek
Wo befindet sich HelloWorld.so? Wahrscheinlich müssen Sie das übergeordnete Verzeichnis mit dem Befehlszeilenparameter "-Djava.library.path"
angeben.
Wenn es beispielsweise in "/path/libs/HelloWorld.so"
ist, fügen Sie -Djava.library.path=/path/libs
als Option hinzu, wenn java
aufgerufen wird. Zum Beispiel ist es "-Djava.library.path=lib"
in einem meiner Projekte.
Bearbeiten: Dan Dyer weist darauf hin, dass auch die Umgebungsvariable LD_LIBRARY_PATH
dafür verwendet werden kann.