eclipse - Scala println 在 IDE 中终止时不起作用

标签 eclipse scala scala-ide

我正在编写一个在循环中运行并在 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/

相关文章:

eclipse - Eclipse(Kepler)启用SVN连接器需要什么:在 “Team->SVN”下?

scala - 匹配没有参数列表的案例类

java - 如何在类编译后运行java程序

scala - 使用 Scala 2.10 更新到 Eclipse Juno 后,多维数组声明失败

Eclipse 卡在搜索对话框中

java - Android 对话框与 edittext() 不断返回 null 抛出异常

java - 依赖于 dll 的可执行 Jar

Eclipse: "dynamic web project"和 "java ee web project"之间有什么区别

scala - 卡斯巴/礼拜 : How to query a field that a part of a string is contained?

scala - 自定义映射到 Slick 中的嵌套案例类结构(超过 22 列)