"Ein JNI-Fehler ist aufgetreten" für eine Instanz des Programms, nicht für andere
Machte ich ein großes Programm in der Eclipse-Java-Mars auf einem computer, der gut funktioniert hat. Ich exportiert das Programm als lauffähige Jar-Datei und ausgeführt, es gab keinerlei Probleme. Auch wenn ich exportiert das gesamte Projekt auf einen anderen computer, das Programm funktioniert immer noch.
Kam die Frage weiter an die anderen computer, wenn ich geringfügige änderungen vorgenommen, um das Projekt. Diese änderungen wurden nur Inhalte basierend verpasst und sollte keinen Unterschied machen, auf die Funktionalität des Programms. Läuft das Programm aus eclipse heraus scheint keine Probleme zu haben. Allerdings, wenn ich das neu erstellte Jar-Datei erhalte ich die folgende Fehlermeldung:
Error: A JNI error has occurred, please check your installation and try again.
gefolgt von einem frame sagen:
A Java Exception has occurred.
Also meine Frage ist:
Wie ist es möglich, dass verschiedene Instanzen desselben Programm kann nicht ausgeführt werden, die über eine Jar-Datei, während die alte Instanz kann?
Habe ich die gleichen JDK version (1.8.0_73) auf beiden Computern, und installierte Sie in so ziemlich die gleiche Weise: ich habe zunächst Java installiert zusammen mit NetBeans über einen kombinierten Version. Folgende, installierte ich Eclipse. Der einzige Unterschied ist, dass auf dem neuen computer installierte ich eclipse offline, d.h. ohne die Eclipse-installer
InformationsquelleAutor Robin Kramer | 2016-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eclipse bietet verschiedene Möglichkeiten zum exportieren der JAR für ein Projekt. Die native Bibliothek (oder Bibliotheken) zur Verfügung, wenn die exportierte JAR, wählen Sie "package required libraries in der erzeugten JAR" option.
InformationsquelleAutor Alex Cohn
JNI bedeutet Java Native Interface, was die Anwendung zu laden versucht eine native Bibliothek. Diese nativen Bibliotheken sind NICHT Teil einer kompilierten jar-Datei. Versuchen Sie herauszufinden, was native Bibliothek ist für Ihre Anwendung benötigt, und ob es installiert ist, auf eine aber nicht die andere Maschine. Überprüfen Sie auch die Konfiguration auszuführen. Mittels JNI müssen Sie -Djava.Bibliothek.Pfad=<...> - parameter, um auf Ihre native Bibliotheken.
follow-up-Frage: Wie finde ich die native Bibliothek, die ich benutze? Ich überprüfte alle JDK und der JRE, dass Sie hatte das exakt gleiche Pfad, aber das schien nicht zu helfen.
vielleicht "exportieren" konfiguriert wurde, besser auf dem alten computer
wow. Ich dachte zuerst, dein Kommentar war ein bisschen vage, aber das war in der Tat der Fall. Ich hatte die falsche option. Statt "package required libraries in der erzeugten JAR" wählte ich "Extract required libraries into generated JAR" auf dem neuen computer. Vielen, vielen Dank!
InformationsquelleAutor loonytune
Bitte aktualisieren Sie Ihre JDK auf die neueste version(JDK 11 oder 12), die dieses Problem lösen.
InformationsquelleAutor Jibin Philip
InformationsquelleAutor dineshkumar arivarasan