0

コマンドラインでJavaアプリケーションを実行する小さなphpスクリプトをローカルで作成しました。このJavaアプリケーションは継続的に実行され、終了することはありません。実行すると、コマンドラインテキストが出力されます。コードは次のとおりです。

<?php
    set_time_limit(0);
    $command = "java -Xms124M -Xmx124M -jar myapp.jar";
    $end = " 2>&1";
    $in = $command . $end;
    $out =  exec($in);
    var_dump($out);
?>

私の問題は、アプリの実行が停止しないため、出力が印刷されないことです。アプリの実行中に返される各行をPHPに出力させる方法はありますか?うまくいけば、私はここで理にかなっています(そうでない場合は教えてください)。

4

2 に答える 2

3

passthru関数と関数を見てみたいと思うかもしれませんpopen。これらは発生時に出力を返す必要があります (ただし、パススルーは出力をバッファリングする可能性があります)。

于 2012-01-02T05:03:27.197 に答える
0

1 つの解決策は、プロセスをバックグラウンド プロセスとして起動し、出力をファイルにリダイレクトすることです。その後、出力ファイルを PHP で読み取ることができますが、特に Java プロセスが終了しないことが想定されているため、PHP をそのように実行したままにしないでください。より良い解決策は、AJAX ポーリングを使用して、PHP が最近の更新を数秒ごとに出力ファイルに返すようにすることです。

于 2012-01-02T05:03:05.263 に答える