我正在编写一个循环运行的服务器,并在 Eclipse IDE 的控制台窗口中按下 SIGINT(ctrl-c) 或终止按钮的情况下终止。我希望它优雅地关闭并打印出终止日志。但问题是 println 在通过按下 Eclipse IDE 中的终止按钮触发关闭序列时似乎不起作用。看下面的简单代码:
object Test extends App {
println("start")
Runtime.getRuntime().addShutdownHook(new Thread {
override def run = println("shutdown")
})
synchronized { wait }
}
它适用于命令行 scala 工具。当我按 ctrl-c 时,会打印“开始”和“关闭”这两条消息。但是当我在 Eclipse IDE 中运行它并点击控制台窗口的终止按钮时,不会打印“关闭”消息。它只是默默地终止。我已经验证了关闭挂钩中的其他所有内容在终止时都可以正常运行。只有 println 不起作用。
对此有任何想法吗?我需要打印出用于记录的终止消息。
提前感谢您的帮助!