Alle Beispiele, die ich bisher gefunden habe, um eine Java -Funktion von C aufgerufen zu haben, zeigen Sie, wie Sie zuerst einen JVM von C erstellen. In meinem Fall beginnt die Anwendung jedoch von Java und die C -Funktion wird von Java aufgerufen. Zeiger zu speichern und ihn dann wiederzuverwenden, stattdessen, stattdessen, stattdessen eine neue JVM -Instanz aus C zu erstellen, um Java -Methoden aufzurufen? < /p>
Gibt es ein Beispiel dafür? Bearbeiten:
Wer auch immer diesen Thread liest, sollte vorsichtig sein! Aus dem aktuellen JNI -Anruf! Speichern und verwenden Sie keinen jnienv* Zeiger, den Sie zuvor erhalten haben, wenn Sie nicht möchten, dass Ihr Programm abstürzt. Das beste Szenario-Absturz Ihrer Anwendung. In schlechteren Szenarien kann es zu Inkonsistenzproblemen auf niedriger Ebene führen, die sehr schwer zu debugieren und
nein jnienv* Instanz sollte zwischengespeichert werden, da Ihr C -Code, wenn Ihr Programm mit Java beginnt >. Dies ist die einzige Instanz, die Sie verwenden sollten, bis Ihre native Methode zurückkehrt, und keine alte gespeicherte Instanz.
Rufen Sie Java -Methoden von C an, ohne das JVM von C [geschlossen] zu starten. ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post