【发布时间】:2012-10-28 09:41:07
【问题描述】:
我的bat 文件中有 4 行,但我的线程在 cmd 关闭之前继续。
这是我的代码:
rt = Runtime.getRuntime();
proc = rt.exec("cmd /c start C:\\temp\\test.bat");
if(proc.waitFor() == 0) {
return "did it";
} else {
return "nooope";
}
我总是在 cmd 关闭之前得到did it。
这是我的批处理文件:
@ECHO off
taskkill /IM "Process.exe" /F
cd "C:\Program Files\ProcessFolder"
START /WAIT Process.exe
START otherProcess.exe
EXIT
有什么帮助吗?
【问题讨论】:
-
你应该解释或补充为什么你不想在你的java代码中使用线程,以及你的主代码之后还有什么。在不知道程序线程情况的情况下发现问题是很痛苦的,因为主线程可能会结束或被中断。因此,最好发布一个可以重现问题的简化程序。
-
另请参阅
runtime.execWiki 链接的文章。实施建议以最稳健地使用Process。另请注意,Java 从 1.5 开始就有ProcessBuilder。它比使用exec更好 - 一个原因是它可以很容易地使用两个输出流(在链接的文章中提到)。
标签: java batch-file runtime.exec