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

标签 java batch-file runtime.exec

在我的 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 Explorer 执行。 CreateProcess 对此一无所知。

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

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

关于java - 如何从我的 Java 应用程序运行批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615948/

相关文章:

java - 一个 SQL 查询中的多个语句,还是使用 Batch?

windows - 需要一个 Windows 批处理脚本,它将远程登录到服务器并运行命令

batch-file - 带有嵌入和失败的注册表查询/注册表删除键

java - 释放Process的所有资源

java - 如何从 Java servlet 运行外部命令?

java - 为什么 UriInfo.getQueryParameters() 不解码 '+' ?

java - spring bean 与 Set 属性相关的问题

Java Runtime.exec() 异步输出

java - selenium - 需要从动态加载的分区中找到一个元素并单击它

java - 有没有更简单的方法来拆分/重建字符串?