Javaでのprocess.waitforの使い方は何ですか。
Javaには、Process.waitFor()メソッドがあり、このメソッドは関連する子プロセスの終了を待ち、子プロセスの終了値を返します。言い換えると、このメソッドは現在のスレッドを一時停止させ、子プロセスが完了するまで待機します。
このメソッドは、子プロセスの終了状態を示す整数値を返します。子プロセスが正常に終了した場合、戻り値は0になり、異常終了した場合は0以外が返されます。
通常、Process.waitFor()メソッドはProcess.exitValue()メソッドと一緒に使用され、後者は子プロセスの終了値を取得するために使用されます。例えば、waitFor()メソッドとexitValue()メソッドを次のように使用することができます:
Process process = Runtime.getRuntime().exec("some_command");
int exitValue = process.waitFor();
System.out.println("子进程的退出值为:" + exitValue);
上記のコードでは、Runtime.getRuntime().exec(“some_command”)を使って、指定されたコマンドを実行する新しいプロセスが作成されます。その後、waitFor()メソッドが子プロセスの完了を待ち、終了値が返されます。最後に、終了値がプリントされます。
waitFor()メソッドを使用すると、現在のスレッドが子プロセスの実行が終了するまでブロックされることに注意する必要があります。現在のスレッドがブロックされるのを避けたい場合は、ProcessBuilderクラスを使用してプロセスを作成し、start()メソッドでプロセスを起動することができます。その後、Process.waitFor()メソッドを使用して子プロセスの終了を待つことができます。この方法では、現在のスレッドの実行がブロックされることはありません。