如何在java中分叉外部进程

时间:2015-05-20 16:12:46

标签: java process operating-system fork

我试图在Java中分叉一个新的外部进程(例如Calculator)。我是操作系统的新手,但我了解到可以使用以下内容: Runtime.getRuntime ().exec ("C:\\Windows\\system32\\calc.exe");。然而,这实际上并没有分叉一个新的过程。无论如何我可以使用java来分叉外部进程吗?

1 个答案:

答案 0 :(得分:4)

我建议你更喜欢ProcessBuilder而不是Runtime.exec。此外,如果我理解您的问题,那么您可以将exe文件的完整路径传递给ProcessBuilder。像,

ProcessBuilder pb = new ProcessBuilder("C:\\Windows\\system32\\calc.exe");
pb.inheritIO(); // <-- passes IO from forked process.
try {
    Process p = pb.start(); // <-- forkAndExec on Unix
    p.waitFor(); // <-- waits for the forked process to complete.
} catch (Exception e) {
    e.printStackTrace();
}