3

アプリケーションのさまざまなプロセス間で「プロセスが完了するまで待機」を理解し、実装するための助けが必要です。これは、段階的に進める必要があります。私のJavaファイルは、スクリプトを実行するバッチファイルを実行します。最後に、一連のコマンドを (コマンド ラインから) 連続して実行する必要があります。私は使用しています:

Runtime.getRuntime().exec("cmd /c start " + command)

バッチファイルとコマンドを実行します(その情報が関連しているかどうかはわかりません)。現在、アプリケーションで実行する必要がある 2 番目のステップが、最初のステップ (スクリプトを実行するバッチ ファイルの実行) が完了する前に実行されています。次の一連のコマンドを実行する前に、最初の手順を完了する必要があります。私が理にかなっていることを本当に願っています!

4

3 に答える 3

6

exec() は、waitFor() を実行できる Process のインスタンスを返します。

ただし、注意してください。「開始」は実際には別の Windows プロセスを生成すると思うので、コマンドが終了する前に waitFor() が戻る可能性があります。コマンドラインから「開始」を削除してみてください。

于 2009-03-17T14:52:14.333 に答える
3

簡単:

Process インスタンスのメソッド waitFor() を呼び出すだけです。外部プロセスが終了するまでスレッドを停止します。

于 2009-12-10T16:31:51.437 に答える
1

その一連のコマンドを独自のバッチ ファイルに入れることはできますか?

それ以外の場合は、 を使用ProcessBuilderしてオブジェクトを取得し、それProcessを呼び出すことができますwaitFor()

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

編集:実際にexec()は、 a を返すProcessので、その部分を気にする必要はまったくありませんProcessBuilder

于 2009-03-17T14:47:00.993 に答える