2012-07-09 174 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進程調用上述行來執行批處理文件。這將默認在後臺運行。