コマンドラインでjavaアプリケーションを実行する小さなPHPスクリプトをローカルに作成しました。このJavaアプリケーションは継続的に実行され、終了しません。実行されると、コマンドラインテキストが出力されます。ここにコードです:実行時にshell_execを出力する
<?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がアプリケーションの実行中に返される各行を出力する方法はありますか? うまくいけば、私はここで意味をなさない(私がいないかどうか私に知らせる)。
なぜ終了しないと予想されるプロセスを生成していますか?サービスベースのアーキテクチャやクライアント/サーバーアーキテクチャが優れていないのでしょうか? – Kenaniah
'java'タグは関係ありません。長時間実行している言語で書かれたプログラムでも同じ問題が発生します。 –
もしプロセスが終了しなければ、別のスレッドで開く必要がありますが、afaik phpはマルチスレッド機能を持っていません。とにかく、リクエストごとにJVMを開くと、残念ですが、私はあなたのプログラムの新しいインスタンスを開始するために何らかの形のプロセス間通信(IPC)を使うことをお勧めします:http://stackoverflow.com/questions/661546/sending-messages-from-php-to-java。また、サイトを段階的に更新するには、1つのリクエストを待つのではなく、JavaScriptと追加のリクエストを使用する必要があります。編集:よく私は "ローカル"部分、愚かな私を読んでいない – PeterT