在processbuilder java中规定的时间

时间:2016-08-18 20:50:19

标签: java

使用ProcessBuilder运行命令可以规定时间吗?有人这样:

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

此代码可以保持运行很长时间,例如,我想分隔1秒。我认为放入一些线程并在此之后破坏过程,但是,它可以强制一些时间吗?

感谢。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:1)

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

您无法强制通过Process API

相关问题