对于Unix上的原生共享库(JRI),我使用Java包装器。本机库(R的基于C的REPL实现)在内部处理SIGINT。当使用Java包装器时,当我使用以下方法向进程发送SIGINT时,Java应用程序退出:
杀灭-SIGINT pid
我希望SIGINT完全由本地库在内部处理。
是否有一种简单的方法可以使Java完全忽略SIGINT,但仍然让本机库接收它?
加法:
最好能在Unix和OSX上工作。
发布于 2010-07-14 20:56:50
它没有标准的API,但是如果您正在使用Sun,则可以使用sun.misc.Signal和sun.misc.SignalHandler。文档中的示例:
SignalHandler handler = new SignalHandler () {
public void handle(Signal sig) {
... // handle SIGINT
}
};
Signal.handle(new Signal("INT"), handler);https://stackoverflow.com/questions/3250280
复制相似问题