0

私はC++のエンジニアですので、優しくしてください!! プロセスを開始する Java コードがいくつかありますが、新しいプロセスが完了するまで実行を停止したいと考えています。

Javaでこれを行うにはどうすればよいですか?

ありがとう

4

4 に答える 4

4

Process新しく作成されたプロセス use を表すオブジェクトがあると仮定すると、次のようになりますProcess.waitFor()

この Process オブジェクトによって表されるプロセスが終了するまで、必要に応じて現在のスレッドを待機させます。サブプロセスがすでに終了している場合、このメソッドはすぐに戻ります。サブプロセスがまだ終了していない場合、呼び出しスレッドはサブプロセスが終了するまでブロックされます。

Processオブジェクトは以下から取得できます。

于 2013-07-17T11:12:47.370 に答える
2

「プロセス」がjava.lang.Processによって取得されるjava.lang.Runtime場合は、次を使用しますProcess.waitFor()

完全を期すために: 通常、Java ではスレッドを操作します。スレッドを待機するオプションは、thread.join()

于 2013-07-17T11:13:19.167 に答える
0

私が正しければ、プロセス (スレッド) を同期しようとしています。

たとえば、メイン プロセスを再開する前にスレッド t1 の完了を待ちたい場合は、次のようなアイデアがあります。

Thread t1 = new MyThreadExample();
t1.start();
t1.join(); //wait for completion
/*
  write what you want to do after completion

*/
于 2013-07-17T11:26:40.543 に答える
0

Read the stream from Process. 残りのコードを実行する前に、プロセスの完了を待ちます。

Process p = Runtime.getRuntime().exec("your command(process)", null, new File("path of process where to execute"));
    InputStream is=p.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    String line = reader.readLine();
    while (line != null) {
      line = reader.readLine();
    }
于 2013-07-17T11:17:16.853 に答える