Webサイトがあり、ユーザーがWebサイトからサーバー上でJavaファイルを実行できるようにしたい。
サーバー上でJavaファイルを実行するボタン、およびJavaプログラムによって標準出力に出力されるものはすべて出力されます。ユーザーが見るためのウェブサイトで。
どのようにこれを行うことができますか(Java PHPからプログラムを呼び出し、Java PHPウェブサイトをリアルタイムで)?
更新:
JavaプログラムをPHPから実行する方法についての回答に感謝します。ただし、Javaプログラムはstdoutに出力されているため、 Javaプログラムが実行中の段階をユーザーが確認できるように、Webページにこれを印刷できるように、実行中に大量のテキストを印刷します。
これをどのように行うことができ、追加のAJAXまたはJavaScriptまたはそのような何かが必要ですか?
PHP exec()
]関数を使用する方法ですが、very注意実行を許可するもの..言い換えると、サーバー全体を危険にさらす可能性があるため、ユーザー入力に依存しないでください。
Execを使用してJavaアプリケーションランチャーを呼び出すと、PHPから任意のJavaアプリケーションを実行できます。
<?php exec("Java -jar file.jar arguments", $output); ?>
リアルタイムに言及しているので、PHP to Java Bridge。各リクエストでJVMを初期化すると、多くのリソースが必要になります。
PHP/Javaブリッジは、XMLベースのストリーミングネットワークプロトコルの実装であり、PHP、Scheme、PythonなどのネイティブスクリプトエンジンをJavaまたはECMA 335仮想マシン:SOAPを介したローカルRPCよりも最大50倍高速であり、Webサーバー側のリソースが少なくて済みます。Java Nativeインターフェース、およびJavaからのプロシージャPHPまたはPHP Javaからのプロシージャ。
JavaクラスをJavaアプレットにラップします。これは、クライアント側のjavascript呼び出しから呼び出すことができます。参照: http ://www.rgagnon.com/javadetails/Java-0170.html
それ以外の場合、呼び出しが標準出力に大量のテキストをスローするか、システムの依存関係のためにサーバーでクラスを実行する必要がある場合、php execから呼び出す方法がありますが、おそらく cometd クライアントにテキストをリアルタイムで表示します。 DojoやjQueryなどのさまざまなjavascriptツールキットの実装があります。
サーバー側では、php here にcometd実装があるようです。
これが役立つことを願っています...
フィリップ
パススルー機能は使用できますか?