我正在编写一个运行在循环中的服务器,并终止在Eclipse IDE的控制台窗口中按下SIGINT(ctrl-c)或终止按钮的情况。我希望它正常关闭打印终止日志。但问题在于,在Eclipse IDE中按下终止按钮触发关闭序列时,println似乎不起作用。看看下面的简单代码:Scala println在IDE中终止时不起作用
object Test extends App {
println("start")
Runtime.getRuntime().addShutdownHook(new Thread {
override def run = println("shutdown")
})
synchronized { wait }
}
它使用命令行工具阶效果很好。当我点击ctrl-c时,会打印“开始”和“关闭”消息。但是,当我在Eclipse IDE中运行它并且点击控制台窗口的终止按钮时,不会打印“关闭”消息。它只是静静地终止。我已验证在关闭挂钩中的所有其他内容在终止时正常运行。只有println不起作用。
对此有何想法?我需要输出用于记录的终止消息。
感谢您的帮助提前!
谢谢你的回答,Kim。这是一个可能的解决方法,它实际上可行,尽管我仍然试图找到一种方法来使控制台工作。如果事实证明在这一点上没有其他选择,我会尽快将您的答案标记为已接受。 ;) – 2012-07-19 04:53:31