【发布时间】:2013-03-11 13:54:45
【问题描述】:
我是一名 Java 程序员,在空闲时间开始学习 Scala。 有这个小问题让我发疯...
每次运行Scala脚本,在执行结束的时候,jvm不退出,总是要自己kill掉进程,挺烦的
案例如下:给定 main.scala 文件中的 little hello world
object Main {
def main(args: Array[String]): Unit = {
println("Hello world")
}
}
运行它
scala main.scala
然后用 ps -ef 我有
501 5739 5727 0 9:46PM ttys000 0:18.08 /usr/bin/java -Xmx256M -Xms32M -Xbootclasspath/a:/MyStuff/ScalaFiles/scala-2.10.1/lib/akka-actors.jar:/MyStuff /ScalaFiles/scala-2.10.1/lib/jline.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala-actors-migration.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala -actors.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala-compiler.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala-library.jar:/MyStuff/ScalaFiles/scala- 2.10.1/lib/scala-partest.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala-reflect.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/scala-swing.jar: /MyStuff/ScalaFiles/scala-2.10.1/lib/scalap.jar:/MyStuff/ScalaFiles/scala-2.10.1/lib/typesafe-config.jar -classpath "" -Dscala.home=/MyStuff/ScalaFiles/scala -2.10.1 -Dscala.usejavacp=true scala.tools.nsc.MainGenericRunner scala.tools.nsc.CompileServer
当然是jvm,得自己退出。
我试过了
System.exit(0)
或sys.exit(0)
但没有任何改变。 你有同样的问题吗?
非常感谢
【问题讨论】:
-
scala.tools.nsc。 CompileServer,它不是你运行的程序:它是在后台运行的编译服务器,以加快编译速度并避免启动开销
-
谢谢,问题出在 compileServer。我不能为服务器设置一个生存时间吗?但是使用 scalac 问题不会显示...
-
如果这是 fsc,您可以发出
fsc -shutdown以完全停止实例或在 fsc 启动时提供-max-idle n选项(可能在 sbt 定义中,但我不确定),其中 n 是时间在 fsc 关闭后的几分钟内,0 表示不朽 fsc。 -
@besil 你能解决这个问题吗?