我正在编写一个在循环中运行并在 SIGINT(ctrl-c) 或 Eclipse IDE 控制台窗口中按下终止按钮的情况下终止的服务器。我希望它优雅地关闭并打印出终止日志。但问题是,在 Eclipse IDE 中按下终止按钮触发关机序列时,println 似乎不起作用。看下面的简单代码:
object Test extends App {
println("start")
Runtime.getRuntime().addShutdownHook(new Thread {
override def run = println("shutdown")
})
synchronized { wait }
}
它适用于命令行 scala 工具。当我按下 ctrl-c 时,消息“开始”和“关闭”都会被打印出来。但是当我在 Eclipse IDE 中运行它并点击控制台窗口的终止按钮时,不会打印“关机”消息。它只是默默地终止。我已经验证关闭 Hook 中的其他所有内容在终止时都可以正常运行。只有 println 不起作用。
对此有什么想法吗?我需要打印出终止消息以进行记录。
提前感谢您的帮助!
最佳答案
关闭进程时,Eclipse 不会运行关闭 Hook :https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016
该错误报告已解决为不会修复
我意识到这是一个老错误,所以也许从那以后事情发生了变化。
关于eclipse - Scala println 在 IDE 中终止时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11548360/