我使用 ProcessBuilder 从 java 应用程序(主机)启动一个新进程(子进程)。像这样的东西:
ProcessBuilder processBuilder = createProcess(commandLine);
processBuilder.directory(new File(baseDir));
processBuilder.redirectErrorStream(true);
Process process = null;
try {
process = processBuilder.start();
} catch (Exception e) {
e.printStackTrace();
}
我确实在系统监视器中看到子进程已启动,但除非我停止主机应用程序,否则它无法运行。更具体地说,子进程是一个服务器,在使用 ProcessBuilder 启动它之后,如果主机应用程序仍在运行,它不会响应请求。此外,服务器正在使用的端口仍然可用。如果我停止主机应用程序,服务器会立即开始工作。有什么我错过的或者 ProcessBuilder 应该如何工作的吗?提前谢谢了。