1

Java プログラムを呼び出して、その出力を stdout にフェッチしたいと考えています。stackoverflowの提案に従いました 。しかし、うまくいきません。

クラスファイルを CLASSPATH に追加しました。そして、次のように cmd でコマンドを正しく実行できます。

ここに画像の説明を入力

私のPHPファイルでは、このプログラムを

exec("java Hello", $output);
print_r($output);

それは何ももたらしません:

Array()

何が問題ですか?どうすればこれを修正できますか?

ps: こんにちは、デモ プログラムです。実際に呼び出したいプログラムはもっと複雑で、私のマシン (i5 4G) では 2 秒以上かかる場合があります。

4

4 に答える 4

2

ここにある Java/PHP Bridge を使用することをお勧めします: http://php-java-bridge.sourceforge.net/pjb/ インストールは非常に簡単で、非常にうまく機能します。

また、次のリンクを使用してダウンロードすることをお勧めします。(ダウンロード -> ドキュメントのリンクと同じです)

http://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_6.2.1/php-java-bridge_6.2.1_documentation.zip/download

ファイルは JavaBridge.war です。おそらく、Java EE コンテナーには Tomcat を使用したいと思うでしょう。Tomcat をセットアップしたら、このファイルを webapps フォルダーに置くだけでインストールされます。

PHP で定期的に Java クラスを使用する場合、これが私が知っている最良の方法であり、多くの方法を試しました。Resin も機能しましたが、私のメール サーバーではうまく機能しませんでした。

于 2013-04-07T09:07:03.370 に答える
1

これを試して:

exec('java -cp .:/path/to/folder/of/your/file Hello 2>&1', $output);
print_r($output);

2>&1エラーを表示する必要性。

于 2013-09-28T19:11:37.197 に答える
0

まあ、それは正しい配列を生成しますか?代わりに、コンソールに「Hello World」を出力してprint_r($output)みてください:Dprint($output[0])

于 2013-04-07T08:18:40.443 に答える