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


exec() php always returning array (size=0) empty?

我试图在我的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中测试它,它工作得很好。

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

try this:

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

代替

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

Try

exec("/path_to_java -jar C:'wamp'www'Hello.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);