Exec () PHP总是返回数组(size=0)为空



我试图在我的php程序中执行jar文件。我用这个简单的例子进行测试:

exec('java -jar "C:wampwwwHello.jar" myName', $output);
var_dump($output);

但是它总是打印

array (size=0)
  empty

顺便说一句,jar文件做System.out.println("hello "+args[0]);,我正在cmd中测试它,它工作得很好。

请帮忙,我已经纠结这个问题两天了。

try this:

exec('java -jar "C:wampwwwHello.jar" myName', $output);

代替

exec('java -jar "C:wampwwwHello.jar" myName', $output);

Try

exec("/path_to_java -jar C:wampwwwHello.jar myName", $output); 
  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);

最新更新