-2

JavaプログラムからLinuxスクリプトを実行し、スクリプトが停止したときにのみプログラムを実行し続けたいです。スクリプト出力を読むことに興味がありません...誰か助けてくれますか? どうもありがとう。下手な英語ですみません。

4

2 に答える 2

2

他のすべてのスレッドがアイドル状態であると仮定します。

// run the script.
Process proc = Runtime.getRuntime().exec("/path/to/myscript");
// wait for the return code.
int ecode = proc.waitFor();

スクリプトにもっと複雑な引数がある場合、または STDOUT や STDERR を監視する必要がある場合、またはその他の変更 (STDIN へのデータのフィード、実行ディレクトリ、環境変数の変更など) が必要な場合は、同じ効果的な手順を実行する必要があります。ただし、使用する代わりにRuntime.exec(...)、プロセスを手動でビルドして開始する必要があります。Process の javadocProcessBuilderの javadoc を読んで設定方法を確認し、起動してください。

于 2013-10-29T14:19:16.760 に答える
1

代わりに bash インタープリターを起動することもできます

Process proc = Runtime.getRuntime().exec("/bin/bash /path/to/myscript");
int ecode = proc.waitFor();

これは、@rolfl ソリューションが機能しない可能性がある一般的に壊れたケースで機能する可能性があります (非実行スクリプト ファイル、#!/ ヘッダーの欠落など)。

于 2013-10-29T14:29:16.577 に答える