So senden Sie Ereignisse / Signale von C an Java in JNI

8

Gibt es einen Mechanismus, um asynchrone Ereignisse / Signale über JNI von C nach Java oder umgekehrt zu senden? Ich muss ein Signal / Ereignis von C nach Java abfangen.

    
Anil Arrabole 18.02.2011, 19:42
quelle

2 Antworten

1

Es klingt etwas kompliziert, da JNI nur in eine Richtung gehen soll: Java-Code kann eine native Methode aufrufen, die natürlich in Java-Code zurückrufen kann, aber den Prozess selbst nicht initiieren kann.

>

Aber es ist nicht unmöglich, ich denke, die einfachste Lösung ist ein nativer Anruf, der blockiert, bis das Signal empfangen wird.

Eine andere Option wäre, einen JVMTI-Agenten zu schreiben, der eine aktive VM aktiv stören kann.

Aber wenn wir über UNIX-Signale sprechen, können Sie dann mit der nicht öffentlichen API umgehen (daher nicht in der Zukunft garantiert und Sun VM-spezifisch), sondern sun.misc.Signal Klasse.

    
biziclop 18.02.2011, 22:15
quelle
-1

Sie können eine Java-Methode aus C-Code aufrufen. Siehe die JNI-Dokumentation. Siehe auch Ссылка .

    
Laurent Pireyn 18.02.2011 21:57
quelle

Tags und Links