Tag: 进程构建器

如何使用带参数的exitValue()?

一篇非常好的文章(当Runtime.exec()不会)时说:你不希望你的程序阻塞等待外部进程的唯一可能的时间你将使用exitValue()而不是waitFor()可能永远不会完成 我宁愿将一个名为waitFor的布尔参数传递给exitValue()方法,以确定当前线程是否应该等待,而不是使用waitFor()方法。 布尔值会更有用,因为exitValue()是此方法的更合适的名称,并且两个方法不必在不同条件下执行相同的function。 这种简单的条件判别是输入参数的范畴。 我有完全相同的情况,我的系统调用将启动一个将继续运行的进程,直到用户决定杀死它。 如果我使用’(process.waitFor()== 0)’它将阻止程序,因为进程将无法完成。 上面文章中的作者建议exitValue()可以与’waitFor’参数一起使用。 有人尝试过吗? 任何例子都会有所帮助。 码: //启动ProcessBuilder,’str’包含一个命令 ProcessBuilder pbuilder = new ProcessBuilder(str); pbuilder.directory(new File(“/root/workspace/Project1”)); pbuilder.redirectErrorStream(true); Process prcs = pbuilder.start(); AForm.execStatustext.append(“\n=> Process is:” + prcs); // Read output StringBuilder out = new StringBuilder(); BufferedReader bfrd = new BufferedReader(new InputStreamReader(process.getInputStream())); String current_line = null, previous_line = null; while ((current_line = bfrd.readLine()) != […]