2013-03-21 57 views
0

我是一名Java程序员,在我的空闲时间开始学习Scala。 有这个小问题让我生气...Scala jvm不会退出

每次我运行一个Scala脚本时,在执行结束时,jvm不会退出,我总是必须自己终止进程,这是很烦人

的情况如下:与

scala main.scala 

然后给出机智的小你好世界main.scala文件

object Main { 
    def main(args: Array[String]): Unit = { 
     println("Hello world") 
    } 
} 

来看,它h ps -ef我有

501 5739 5727 0 9:46 PM 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 /阶-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)

,但什么都没有改变。 你有同样的问题吗?

非常感谢

+3

scala.tools.nsc。 ** CompileServer **,它不是你运行的程序:它正在编译后台运行的服务器,以加快编译速度并避免启动开销 – 2013-03-21 21:03:08

+0

谢谢,问题是编译服务器。我无法为服务器设置一段时间吗?但使用scalac时,问题不会显示... – besil 2013-03-21 21:25:41

+2

如果这是fsc,您可以发出'fsc -shutdown'来完全停止实例或在fsc start提供'-max-idle n'选项(可能在sbt定义中,但我不确定),其中n表示fsc下降的时间,0表示不朽的fsc。 – 2013-03-21 21:30:11

回答

0

您可能要调查不同的方式来运行的Scala脚本:

  • 最先进的一种是采用scalas从SBT,让你可以应付依赖
+0

谢谢,我会调查。 – besil 2013-03-23 08:50:13

+0

@besil您是否找到解决方案? – 2015-04-26 05:59:16