如何在 java 中创建外部进程
How do I fork an external process in java
我正在尝试在 Java 中创建一个新的外部进程(例如计算器)。我是操作系统的新手,但我了解到可以使用类似的东西:
Runtime.getRuntime ().exec ("C:\Windows\system32\calc.exe");
。然而,这实际上并没有分叉一个新的过程。无论如何我可以使用 java 分叉一个外部进程吗?
我建议您更喜欢 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();
}
我正在尝试在 Java 中创建一个新的外部进程(例如计算器)。我是操作系统的新手,但我了解到可以使用类似的东西:
Runtime.getRuntime ().exec ("C:\Windows\system32\calc.exe");
。然而,这实际上并没有分叉一个新的过程。无论如何我可以使用 java 分叉一个外部进程吗?
我建议您更喜欢 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();
}