如何从后台Java代码中运行命令行?(How do I run command line from

2019-07-30 07:20发布

我有以下行来运行一个批处理文件,

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

但我想它在后台运行,并不会显示在命令行给用户。 我怎样才能改变它做到这一点?

问题是,在命令窗口打开并intrupts程序GUI。 我只是想在其执行的批处理文件中的命令窗口中是不可见的。

Answer 1:

删除“开始”完全会做你想要什么(因为这是为创建窗口):

Process process = Runtime.getRuntime().exec("cmd /c rake.bat");

我测试了这一点,它的工作着,当然,如果你想用命令提示符沟通你必须有输入和输出流,还不忘你的错误流正如评论指出,虽然取消对XP不会帮助“开始”(因为它不会工作)。



Answer 2:

我不太清楚你的意思由“后台”

如果你的意思只是该窗口是不可见的, 这SO答案可能是有用的。

如果(但是)你是说你希望你的Java程序继续运行,而这个执行,那么你应该在产卵这一关单独的线程 。

不管上述情况, 要注意捕捉到您的批处理文件的sdtout /标准错误 。



Answer 3:

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

如果要调用从Java进程上述行来执行批处理文件。 这将默认在后台运行。



文章来源: How do I run command line from Java code in the background?