2

私はphpフォームを介してJavaアプリケーションを実行しようとしていました..送信ボタンが実行コマンドを起動します:

exec("java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");

最初のパスは jar ファイルの場所を決定し、2 番目のパスはパラメーターとして機能します。

問題は、スクリプトの処理に時間がかかりすぎることです。待機をバイパスしたいのですが、それを行う方法はありますか (火事と忘れのように)? スクリプトは結果をファイルに書き込み、ファイルがそこにあるかどうかを 5 分ごとに確認できますが、プロセスが終了するのを待って立ち往生するのは不便です...

助言がありますか ?

前もって感謝します

4

4 に答える 4

1

これも同じ問題だと思います

PHP での非同期シェル exec

コメントにあるように、上記は *nix 環境でのみ機能しますが、Windows では次のようなものを見つけました。

http://www.somacon.com/p395.php

それでも、Web サーバーに接続されていない、作業を送信できる別のプロセスなど、他のソリューションについて考える方が良いかもしれません。

ウェブサーバーはプロセスをリサイクルすることがあり、バックグラウンド プロセスは私が読んだ限り常に分離されているわけではないため、完全に分離されていない限り、外部プロセスが強制終了される可能性があります。

于 2011-02-08T12:03:22.117 に答える
0

ここにもソリューションを追加したいと思います: 魔法のように機能しました:) thx alot ircmaxell
$shell = new COM("WScript.Shell");
$shell->run($command, 0, false);

于 2011-02-08T12:31:26.260 に答える
0

Windows 上で Java プログラムを起動する必要があるため、java.exe の代わりに javaw.exe を使用できます。

Windows 上の javaw は、cmd ウィンドウを開かずに jvm を開始するように設計されています。多分それは助けることができます

于 2011-02-08T12:32:00.810 に答える
-1

MSWindows で試してください:

exec("start java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");
于 2011-02-08T12:16:11.650 に答える