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 がどのように機能すると思われますか? よろしくお願いします。