2011-02-18 95 views

回答

1

这听起来有点棘手,因为JNI应该是单向的:Java代码可以调用本地方法,当然这可能会调用回Java代码,但本身不能启动进程。

但这不是不可能的,我认为最直接的解决方案是有一个本地呼叫阻塞,直到收到信号。

另一种选择是编写一个JVMTI代理程序,它可能会主动干扰正在运行的虚拟机。

但是,如果我们谈论的是UNIX信号,那么您可以使用非公开API(因此不保证将来和Sun VM特定)但现有sun.misc.Signal类来处理。