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 中对其进行测试,并且工作正常。

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

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 回答
0

尝试

exec("/path_to_java -jar C:\wamp\www\Hello.jar myName", $output); 
于 2013-06-05T09:24:32.550 回答