2011-02-18 93 views

回答

1

這聽起來有點棘手,因爲JNI應該是單向的:Java代碼可以調用本地方法,當然這可能會調用回Java代碼,但本身不能啓動進程。

但這不是不可能的,我認爲最直接的解決方案是有一個本地呼叫阻塞,直到收到信號。

另一種選擇是編寫一個JVMTI代理程序,它可能會主動干擾正在運行的虛擬機。

但是,如果我們談論的是UNIX信號,那麼您可以使用非公開API(因此不保證將來和Sun VM特定)但現有sun.misc.Signal類來處理。