exec()php总是返回数组(size = 0)为空?

时间:2013-06-05 09:15:04

标签: java php exec

我正在尝试在我的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测试它,它运行正常。

请帮助我两天以来一直在努力解决这个问题。

3 个答案:

答案 0 :(得分:0)

试试这个:

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

而不是

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

答案 1 :(得分:0)

尝试

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

答案 2 :(得分:0)

  1. 您必须转义反斜杠:将\替换为\\
  2. 您应该分别构建CMD和JAR字符串。 (好编程)
  3. 使用2>&1将错误重定向到输出,以显示输出中的错误。
  4. 简单:

    $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);