一尘不染

如何从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文件,但由于该文件不起作用,我决定通过批处理文件调用该脚本,但该方法到目前为止尚未成功。


阅读 401

收藏
2020-02-26

共1个答案

一尘不染

批处理文件不是可执行文件。他们需要一个应用程序来运行它们(即cmd)。

在UNIX上,脚本文件的文件开头有shebang(#!),用于指定执行该脚本的程序。在Windows中双击是由Windows资源管理器执行的。 CreateProcess对此一无所知。

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

注意:使用该start \"\"命令,将打开一个单独的命令窗口,标题标题为空白,并且批处理文件的所有输出都将显示在该窗口中。它也应该只与“ cmd / c build.bat”一起使用,在这种情况下,如果需要,可以从Java子进程中读取输出。

2020-02-26