2

私の問題は、プラグイン内の Eclipse でいくつかの jar ファイルを実行したいということです。この jar は、Eclipse プロジェクトで分析を行います。

String run_tool ="cmd.exe /C start java -Xmx400m -cp org-jcolumbus.jar;org-jcolumbus-schema.jar;lib/antlr.jar org.jcolumbus.tool.BuildModel -tasks "+src_dir+" -jsi "+SelProj.getLocation()+"/result/temp/"+SelProj.getName();
Runtime rt2 = Runtime.getRuntime();
Process sp2 = rt2.exec(run_tool);

" src_dir" は Eclipse プロジェクトのソース ディレクトリです

"SelProj.getLocation()+"/result/temp/"+SelProj.getName()"は、選択した Eclipse プロジェクトの結果ディレクトリです。結果はここに表示されます。

jarの実行後、「temp」フォルダーの名前を別のフォルダーに変更したいのですが、jarの実行が完了する前にEclipseが「temp」フォルダーの名前を変更するため、jarが正しく機能しません。

メソッドを使用しようとしますが、うまくいきsp2.waitFor()ません。「開始」パラメーターはcmd.exe /C start、新しいプロセスに入った後、私が制御できないものだと思います。
誰かアドバイスがあれば、教えてください。ありがとう。

4

2 に答える 2

1

a StreamGobbler(this SO questionまたは this simple oneを参照) を使用して、プログラムの残りの部分に進む前に、コマンドの完了を探すことができます。

注: 標準出力と標準エラーの両方を読むことをお勧めします。

注:このSO回答が示すように、開始なしで「cmd」を実行すると、.waitFor()必要なことを実行できる場合があります。

Process p = Runtime.getRuntime().exec(cmd + " < c:\\someTextFile.txt", null, cmdDir);
...
int errCode = p.waitFor();
于 2009-11-25T11:46:30.940 に答える
1

start を使用せずに Java を実行してみてください。

String run_tool ="cmd.exe /C java ...
于 2009-11-25T11:48:21.747 に答える