IntelliJ Idea und JNI: Sicherstellen, dass DLL ' s Sind, Wo Sie für die Ausführung
Arbeite ich mit einer Drittanbieter-Bibliothek in ein Projekt, und es enthält zwei .dll-Dateien und eine .jar-fie, um eine JNI-Wrapper. Das test-Projekt, dass die Drittanbieter enthalten .jar-Datei aufgerufen werden kann mit dem folgenden Befehl:
java -cp product.jar com.company.samples.product.Test
Das funktioniert gut, solange die .jar und die dll im gleichen Verzeichnis.
In meinem Projekt habe ich gelegt die jar-Datei und die dll in das gleiche Verzeichnis und dann auf die jar-Datei als Bibliothek in IntelliJ Idee, aber das bewirkt, dass die Bibliothek, nicht auf die dll. Gibt es eine Möglichkeit, dass ich sagen kann, eine Vorstellung, wo die dll ' s sind, so kann es die Ausgabe in das selbe Verzeichnis wie die jar-Datei während der Ausführung?
InformationsquelleAutor Brendon Dugan | 2013-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
In IntelliJ, wenn Sie möchten, fügen Sie ein Verzeichnis, in dem .dll gefunden tun:
1) Öffnen Sie die Projekt-Struktur-dialog (z.B. Strg+Shift+Alt+S).
2) Im linken Bereich des Dialogfelds, wählen Sie die Module.
3) klicken Sie Im Bereich auf der rechten Seite, wählen Sie das Modul, von Interesse.
4) Im rechten Teil des dialogs, auf der Modul-Seite, wählen Sie die Registerkarte "Abhängigkeiten".
5) Auf der Registerkarte Abhängigkeiten klicken Sie auf "+" und wählen Sie Gläser oder Verzeichnisse.
6) In das Dialogfeld, das geöffnet wird, wählen Sie die erforderlichen Dateien und Ordner. Diese können einzelnen .Klasse und .java-Dateien, - Verzeichnisse und-Archive (.jar-und .zip), die solche Dateien sowie Verzeichnisse mit Java native Bibliotheken (.dll, .so oder so .jnilib). Klicken Sie auf OK.
Siehe für die ursprüngliche Erklärung auf https://www.jetbrains.com/help/idea/2016.3/configuring-module-dependencies-and-libraries.html#d1860048e28 .
Dies ist, wie ich hinzufügen .dll (sql_auth.dll) für den JDBC-Treiber für die Verwendung der integrierten Sicherheit von MS SQL.
InformationsquelleAutor display_name
Können Sie die
java.library.path
system Eigentum hinweisen zu Java, wo man die nativen Bibliotheken.Hinweis, nach diese Antwort, es ist eine nur-Lesen-Feld, das aktiviert ist, bevor Sie die Gelegenheit haben, es zu ändern im code, aber Sie bieten ein work-around. Im Allgemeinen habe ich nie gebraucht, um den Wert zur Laufzeit verglichen, um zu starten.
InformationsquelleAutor pickypg
Die DLL geladen werden path-variable. Man könnte den Wert ändern, wenn Sie die Anwendung starten.
Alternativ, Sie können bauen Sie den Pfad zur dll (wieder mithilfe der Umgebungsvariable /Systemvariable) und laden Sie es über System.load()
InformationsquelleAutor Jayan