2012-07-09 132 views
3

我有以下行来运行一个批处理文件,如何在后台运行Java代码中的命令行?

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

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

问题是命令窗口打开并且侵入程序GUI。我只想让命令窗口在执行批处理文件时不可见。

+0

问题是,命令窗口打开并侵入程序GUI。我只想让命令窗口在执行批处理文件时不可见。 – cHam 2012-07-09 12:29:33

回答

7

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

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

我测试了这一点,它的工作着,当然,如果你想用命令沟通提示你将不得不有输入和输出流,也不会忘记你的错误流 正如评论中所述,虽然删除XP上的'开始'不会帮助(因为它不会工作)。

+0

如果你删除启动命令wonot执行 – developer 2012-07-09 12:17:55

+0

@developer我认为不只是在Windows 7中测试JDK 7,它工作正常 – 2012-07-09 12:37:27

+0

我在Windows XP中测试,它没有执行命令后,我从上述命令删除“开始” – developer 2012-07-09 12:39:10

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

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