Java命令行程序阻断操作系统Ctrl+C信号

最近在写个基于ssh协议进行命令行的服务器管理维护系统,基于Java的,遇到一个难题是,在ssh连接到服务器之后,Ctrl+C会直接把我的Java程序关掉而不是结束远程服务器上的命令。

找到一个基于Sun JDK的解决办法,记录一下(Win7,Redhet,CentOS上测试可行):

// 创建一个信号处理器
sun.misc.SignalHandler handler = new sun.misc.SignalHandler() {
@Override
public void handle(sun.misc.Signal signal) {
// 什么都不做
}
};
// 设置INT信号(Ctrl+C中断执行)交给指定的信号处理器处理,废掉系统自带的功能
sun.misc.Signal.handle(new sun.misc.Signal("INT"), handler);
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页