2

私はコマンドを使用しています:

shell_exec("java -version");

インストールされているJavaのバージョンを検出します。Java IS がインストールされています。PHP スクリプトは、ユーザー「daemon」の下で実行されます。コマンド ラインから次のコマンドを実行します。

su daemon -c 'java -version'

出力

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.1) (6b27-1.12.1-2ubuntu0.12.04.2)
OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)

shell_exec を使用すると、Java と PHP で動作することがわかっています。これは、コードの他の場所で、それを使用して Java .jar ファイルを実行しているためです。

ここで何か不足していますか?

4

3 に答える 3

0

Java が出力を stdout に直接送信しているようです。コマンド ラインでバッククォートを使用してコマンドを実行し (コマンドは同等であるとドキュメントに記載されています)、それを変数に保存しようとすると、出力されますが、変数には保存されません。

例えば:

foo=`java -version`
print $foo // results in nothing

でも:

foo=`ls`
print $foo // results in the results of ls

代わりに、出力変数でexecを使用してみてください。

于 2013-07-09T20:15:44.533 に答える
0

これを試して -exec('java -version', $output);

shell_exec() ではなく exec() です

詳細はこちら

于 2013-07-09T20:13:56.960 に答える