2016-08-18 45 views
0

使用ProcessBuilder運行命令時可以規定時間嗎?有些人喜歡這樣:processbuilder中規定的時間java

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "dir /s"); 
Process p = builder.start(); 

這段代碼可以保持很長一段時間,我想分隔1秒,例如。我認爲在一些線程內部,並在這段時間之後摧毀這個過程,但是,可能需要一些時間?

謝謝。

回答

1
Process p = builder.start(); 
TimeUnit.SECONDS.sleep(someTime); // Whatever time you want to wait 
if (p.isAlive()) p.destroyForcibly(); 

你不能強迫它通過Process API

1

您可以在單獨的線程中啓動進程,睡眠1秒,然後您可以終止進程。

new Thread(new Runnable() { 
    public void run() { 
     ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "dir /s"); 
     Process p = builder.start(); 
     Thread.sleep(1000); 
     p.destroy(); 
    } 
}).start();