【问题标题】:"scala" command terminates batch scripts“scala”命令终止批处理脚本
【发布时间】:2012-11-17 13:27:44
【问题描述】:

在这里工作期间,我遇到了一个有点奇怪的问题。可能对这种行为有一个非常简单的解释,但对我来说这没有多大意义。

情况如下:

我写了一个批处理文件“test.bat”,现在看起来像这样:

echo 1
scala myProgram
echo 2

当我在相应目录中打开命令提示符并运行 test.bat 时,它首先回显 1,然后运行 ​​myProgram(它也有某些输出出现在控制台中,因此 scala 程序 myProgram 可以正常工作) - 和然后停止。 2 没有出现在控制台中,控制台等待我输入另一个命令。

为什么会有这种行为?是控制台故障吗?还是 scala 命令的?或者根本不是故障,它实际上是为了表现得那样?

我实际上想要做的是将“scala myProgram”的输出重定向到一个文件(效果很好)并在 scala 程序终止后重命名这个文件,所以我的批处理文件最初看起来有点像这样:

scala myProgram > log.txt 2>&1
ren "log.txt" "log2.txt"

我对从未创建过“log2.txt”这一事实感到困惑。

非常感谢您的回答,谢谢。

【问题讨论】:

  • 你的 Scala 程序真的 exit 本身吗?
  • scala 程序只是一个包含 main 函数的类,当我调用“scala myProgram”时它会自动执行。这个主函数的最后一个命令是 println,它按预期出现在控制台中。
  • 您能提供您正在使用的 Scala 代码吗?或者用像这样非常简单的东西再试一次:object myProgram extends App { println("hello stackoverflow") }

标签: scala scripting command prompt terminate


【解决方案1】:

-nc 添加到 scala 命令对我有用:

    $ scala -nc /tmp/2.scala
    Hello world

所以我猜,这个问题与编译守护进程有关

 -nc          no compilation daemon: do not use the fsc offline compiler

你可以试试吗?

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2015-10-11
    • 2013-07-27
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多