我有以下行来运行一个批处理文件,如何在后台运行Java代码中的命令行?
Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");
但我想它在后台运行,并不会显示在命令行给用户。我如何改变它来做到这一点?
问题是命令窗口打开并且侵入程序GUI。我只想让命令窗口在执行批处理文件时不可见。
我有以下行来运行一个批处理文件,如何在后台运行Java代码中的命令行?
Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");
但我想它在后台运行,并不会显示在命令行给用户。我如何改变它来做到这一点?
问题是命令窗口打开并且侵入程序GUI。我只想让命令窗口在执行批处理文件时不可见。
删除“开始”完全会做你想要什么(因为这是在创建窗口):
Process process = Runtime.getRuntime().exec("cmd /c rake.bat");
我测试了这一点,它的工作着,当然,如果你想用命令沟通提示你将不得不有输入和输出流,也不会忘记你的错误流 正如评论中所述,虽然删除XP上的'开始'不会帮助(因为它不会工作)。
Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");
如果您从java进程调用上述行来执行批处理文件。这将默认在后台运行。
我不太清楚你说“背景”
如果你的意思只是该窗口不可见,this SO answer可能是使用的是什么意思。
如果(但是)您的意思是您希望Java程序在执行时继续运行,那么您应该在separate thread中产生此代码。
问题是,命令窗口打开并侵入程序GUI。我只想让命令窗口在执行批处理文件时不可见。 – cHam 2012-07-09 12:29:33