我有一个Eclipse RCP的GUI应用程序,可以利用很多相同的插件(这是非常方便的集成测试)的命令行版本。有一件事情它是连接到服务器,要求的东西,并开始一个互动循环。退出,则GUI应用程序的用户可停止循环和关闭应用程序。

在我的命令行应用程序,最明显的方式“关闭”的应用程序是CTRL-C!然而,这叶“会议CRUD”,可以被清理,如果我可以捕获退出信号的服务器上。渣滓终将超时或什么,但它会是很好,如果我可以把它整理出来干净了。

那么,什么是我从一个Eclipse RCP应用程序捕获kill信号选项?这是Linux特有的,有没有什么帮助。但我不加载任何插件SWT。我的“主循环” Plugin.stop()时,我CTRL-C在命令行不叫。像Python的一个KeyboardInterrupt东西是王牌!

有帮助吗?

解决方案

,我发现一种替代方法 - 添加,当运行一个关闭挂钩当端部到达...

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            System.out.println("The end.");
        }
    });

其他提示

看bash的trap内建。对于CTRL-C的信号为信号情报,但可能需要也陷阱SIGTERM和SIGHUP。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top