java - 如何从Java应用程序运行批处理文件?

在我的Java应用程序中,我想运行一个批处理文件,称为“scons -Q implicit-deps-changed build\file_load_type export\file_load_type
似乎我甚至无法执行批处理文件。我没主意了。
这就是我在Java中所拥有的:

Runtime.
   getRuntime().
   exec("build.bat", null, new File("."));

以前,我有一个要运行的python sconscript文件,但由于这个文件不起作用,我决定通过批处理文件调用该脚本,但到目前为止该方法还没有成功。


最佳答案:

批处理文件不是可执行文件。他们需要一个应用程序来运行它们(即cmd)。
在Unix上,脚本文件有shebang(!)在文件的开头指定执行它的程序。在Windows中双击由Windows资源管理器执行。CreateProcess对此一无所知。

Runtime.
   getRuntime().
   exec("cmd /c start \"\" build.bat");

注意:使用start \"\"命令,将以空白标题打开一个单独的命令窗口,并且批处理文件的任何输出都将显示在该窗口中。它也应该用“CMD/C Buff.BAT”来工作,在这种情况下,如果需要,可以从Java中的子进程读取输出。