Javaで続行する前にプロセスが終了するのを待つ 質問する

Javaで続行する前にプロセスが終了するのを待つ 質問する

基本的に、私はいくつかのソフトウェアをインストールし、その後にそのプログラムを準備するためのいくつかの基本的なコマンドを実行する小さなプログラムを作成しています。しかし、実際には、プログラムはインストールを開始し、すぐに次の行 (登録、更新など) に進みます。もちろん、これは完全にインストールされるまで実行できません。そのため、最初のプロセスが完了するまで 2 番目のプロセスを実行する方法を知りたいと思います。たとえば、

    Main.say("Installing...");
    Process p1 = Runtime.getRuntime().exec(dir + "setup.exe /SILENT");
    //Wait here, I need to finish installing first!
    Main.say("Registering...");
    Process p2 = Runtime.getRuntime().exec(installDir + "program.exe /register aaaa-bbbb-cccc");
    Main.say("Updating...");
    Process p4 = Runtime.getRuntime().exec(installDir + "program.exe /update -silent");

ベストアンサー1

電話Process#waitFor()Javadoc には次のように書かれています:

必要に応じて、このオブジェクトによって表されるプロセスがProcess終了するまで、現在のスレッドを待機させます。

ボーナス: サブプロセスの終了値を取得します。したがって、コードで正常に終了したかどうか0、またはエラーが発生したかどうか (ゼロ以外の終了コード) を確認できます。

おすすめ記事