Als «java-native-interface» getaggte Fragen

Die Java Native Interface (JNI) bietet sowohl die Möglichkeit für JVM-Implementierungen, systemeigenen Systemcode auszuführen, als auch die Möglichkeit für nativen Code, Java-Code auszuführen (durch Erstellen neuer JVM-Instanzen). Die gebräuchlichsten Zielsprachen für JNI sind C und C ++, für die mindestens die Sun / Oracle JDK-Implementierungen Hilfsbefehle bereitstellen (javap - für die Code-Disassemblierung, javah für die C-Code-Generierung).

30
Fehler beim Laden der JNI Shared Library (JDK)
Wenn ich versuche, Eclipse zu öffnen , wird in einem Popup-Dialogfeld Folgendes angezeigt: Fehler beim Laden der gemeinsam genutzten JNI-Bibliothek "C: /JDK/bin/client/jvm.dll" `. Anschließend wird die Eclipse-Kraft geschlossen. Hier sind einige Punkte, die ich ansprechen möchte: Ich habe überprüft, ob auf diesem Pfad etwas vorhanden ist. Es existiert. Mein Eclipse …



3
Was macht JNI-Anrufe langsam?
Ich weiß, dass das Überschreiten von Grenzen beim Tätigen eines JNI-Aufrufs in Java langsam ist. Aber ich will wissen , was ist es , dass es langsam macht? Was macht die zugrunde liegende JVM-Implementierung, wenn ein JNI-Aufruf ausgeführt wird, der ihn so langsam macht?




2
JNI konvertiert jstring in char *
Ich habe eine URL-Zeichenfolge von Java an C-Code als jstringDatentyp mithilfe von JNI übergeben. Und meine Bibliotheksmethode benötigt eine char *as url. Wie kann ich konvertieren jstringin char *? PS: Gibt es einen Vorteil bei der Verwendung von jcharArray in C? (dh Übergeben char []anstelle von Zeichenfolge in der nativen …

6
Wie bündle ich eine native Bibliothek und eine JNI-Bibliothek in einer JAR?
Die fragliche Bibliothek ist Tokyo Cabinet . Ich möchte, dass die native Bibliothek, die JNI-Bibliothek und alle Java-API-Klassen in einer JAR-Datei enthalten sind, um Umverteilungsprobleme zu vermeiden. Bei GitHub scheint es einen Versuch zu geben , aber Es enthält nicht die eigentliche native Bibliothek, sondern nur die JNI-Bibliothek. Es scheint …

15
undefinierter Verweis auf `__android_log_print '
Was ist los mit meiner Make-Datei? Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo.c LOCAL_EXPORT_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) foo.c #include <string.h> #include <jni.h> #include <android/log.h> #define LOG_TAG "foo" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) void test() { LOGI("test"); } ndk-build foo.c:9: undefined reference to `__android_log_print'


4
Wie kann ich SIGSEGV (Segmentierungsfehler) abfangen und unter JNI unter Android einen Stack-Trace abrufen?
Ich verschiebe ein Projekt auf das neue Android Native Development Kit (dh JNI) und möchte SIGSEGV abfangen, falls es auftreten sollte (möglicherweise auch SIGILL, SIGABRT, SIGFPE), um stattdessen einen schönen Dialog zur Absturzberichterstattung zu präsentieren (oder vorher) was aktuell passiert: der sofortige, zügellose Tod des Prozesses und möglicherweise ein Versuch …

13
java.lang.UnsatisfiedLinkError no *****. dll in java.library.path
Wie kann ich eine benutzerdefinierte DLL-Datei in meine Webanwendung laden? Ich habe folgendes versucht: Kopierte alle erforderlichen DLLs in den system32Ordner und versuchte, eine davon in den ServletKonstruktor zu ladenSystem.loadLibrary Erforderliche DLLs in tomcat_home/shared/libund kopierttomcat_home/common/lib Alle diese DLLs befinden sich in WEB-INF/libder Webanwendung

2
Aufrufen einer Java-Methode aus c ++ in Android
Ich versuche, einen einfachen Java-Methodenaufruf von C ++ zu erhalten, während Java die native Methode aufruft. Hier ist der Java-Code: public class MainActivity extends Activity { private static String LIB_NAME = "name"; static { System.loadLibrary(LIB_NAME); } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) …

16
So beheben Sie einen UnsatisfiedLinkError (abhängige Bibliotheken können nicht gefunden werden) in einem JNI-Projekt
Ich arbeite an einem Java-Projekt, das das JNI verwendet. Das JNI ruft eine benutzerdefinierte Bibliothek auf, die ich selbst geschrieben habe, sagen wir mylib.dll, und das hängt von einer Bibliothek eines Drittanbieters ab, libsndfile-1.dll. Wenn ich mein Programm starte, stürzt es mit ab java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries. Ich …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.