我有以下行來運行一個批處理文件,如何在後臺運行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