0

PHPプログラムでjarファイルを実行しようとしています。私はこの簡単な例でテストしています:

exec('java -jar "C:\wamp\www\Hello.jar" myName', $output);
var_dump($output);

しかし、それは常に印刷しています

array (size=0)
  empty

ところで、jarファイルは機能しSystem.out.println("hello "+args[0]);、cmdでテストしていますが、正常に動作しています。

2日以来、この問題に苦しんでいます。

4

3 に答える 3

0
  1. バックスラッシュをエスケープする必要があります: に置き換え\ます\\
  2. CMD 文字列と JAR 文字列を別々に作成する必要があります。(良いプログラミング)
  3. 2>&1出力にエラーを表示するには、エラーを出力にリダイレクトします。

単純:

$JAR = 'C:\\wamp\\www\\Hello.jar';
$CMD = sprintf(
    'java -Xmx32m -jar %s myName 2>&1'
    ,escapeshellarg($JAR)
);
exec($CMD, $Output, $Status);
var_dump($CMD, $Output, $Status);
于 2013-12-12T13:03:48.340 に答える
0

これを試して:

exec('java -jar \"C:\wamp\www\Hello.jar" myName', $output);

それ以外の

exec('java -jar "C:\wamp\www\Hello.jar" myName', $output);
于 2013-06-05T09:22:02.930 に答える