我在Unix(JRI)上使用Java包装器来创建本机共享库.本机库(R的基于C的REPL实现)在内部处理SIGINT.使用Java包装器时,Java应用程序在使用以下方法将SIGINT发送到进程时退出:
kill -SIGINT pid
我更喜欢SIGINT内部完全由本机库处理.
有没有一种简单的方法可以让Java完全忽略SIGINT但仍然有本机库接收它?
加成:
这最好适用于Unix和OSX.
它没有标准API,但如果您使用的是Sun JDK,则可以使用sun.misc.Signal和sun.misc.SignalHandler.来自文档的示例:
SignalHandler handler = new SignalHandler () {
public void handle(Signal sig) {
... // handle SIGINT
}
};
Signal.handle(new Signal("INT"), handler);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |