Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala REPL自动退出_Scala_Read Eval Print Loop - Fatal编程技术网

Scala REPL自动退出

Scala REPL自动退出,scala,read-eval-print-loop,Scala,Read Eval Print Loop,Scala REPL的行为异常,或者这可能是预期的行为。创建大型机对象并将其可见性设置为true时,将显示一个窗口。但是,如果我关闭窗口,Scala REPL将退出到终端。示例会话: ~$ scala scala> import swing._ scala> val frame = new MainFrame() scala> frame.visible = true ~$ //when I close the

Scala REPL的行为异常,或者这可能是预期的行为。创建大型机对象并将其可见性设置为true时,将显示一个窗口。但是,如果我关闭窗口,Scala REPL将退出到终端。示例会话:

 ~$ scala
 scala> import swing._
 scala> val frame = new MainFrame()
 scala> frame.visible = true
 ~$                             //when I close the window
我正在kubuntu上使用scala 2.9.1,如中所述:

关闭框架并在关闭时退出应用程序

(即,它关闭REPL运行的JVM。)

为了防止这种行为,您可以简单地使用
框架
,或者覆盖
关闭操作
方法

以下是参考资料:

/**
 * A frame that can be used for main application windows. Shuts down the
 * framework and quits the application when closed.
 */
class MainFrame extends Frame {
  override def closeOperation() { sys.exit(0) }
}

这是
大型机
类本身,再加上
系统的不太OO的行为。退出

这是大型机的全部源代码:

class MainFrame extends Frame {
  override def closeOperation() { sys.exit(0) }
}
从这个角度看,很明显当窗口关闭时,
System.exit
被调用,JVM将退出

如果你发现这一点时只是在试验,那么解决办法就是不要这样做!如果要在REPL中使用帧,则可以覆盖
closeOperation
以不退出JVM,或者只使用
frame
(因为大型机的唯一附加功能是JVM退出行为)