有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ProcessBuilderJava中的规定时间

在ProcessBuilder中运行命令时是否可以指定时间?有点像这样:

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

这段代码可以运行很长一段时间,例如,我想分隔1秒。我认为,在放入一些线程后,这段时间会破坏进程,但是,有可能强制一些时间吗

谢谢


共 (2) 个答案

  1. # 1 楼答案

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

    你不能强迫它通过过程API

  2. # 2 楼答案

    您可以在单独的线程中启动进程,睡眠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();