0
下,运营商,我有以下两条线在我的Scala程序使用sbt从scala运行外部进程!视窗
val success:Int = ("d:\\program.bat" !)
println("started "+success)
program.bat看起来像这样
@echo off
start "" "d:\notepad.exe"
echo DONE
程序实际启动Tomcat服务器,但它是Firefox的都是一样的,记事本等...所以我简化了这个notepad.exe
我想开始记事本,看到“开始0”。
的问题是,代码停在第一线和犯规打印“开始0”,直到我关闭记事本
的program.bat的最后一行是
echo DONE
和DONE是在执行停止之前打印出最后一件东西(所以我假设它不会停止在program.bat中)。
我试着把EXIT/B 0放在我的program.bat脚本的末尾,但它没有改变任何东西。
我听说它在linux下正常工作(当然使用program.sh)。
任何建议如何真正从program.bat分离记事本并返回0?
感谢您的回答!这是一个有用的知识。但我实际上想要实现的目标是让program.bat“fire and forget”记事本而不是scala程序“fire and forget”program.bat。那么,我是否正确地认为program.bat不会终止(尽管它会打印出DONE),直到它开始的进程终止为止?我可以强迫它终止,而不是等待记事本终止? – misiek
我明白了,我误解了你的帖子。如果你在shell上运行'program.bat',你会发现它忘记记事本。但是,一旦所有子进程终止,由Scala启动的进程只会终止,其中包括已被触发和忘记的记事本进程。 –