PHP exec() jar java 文件没有 return 任何输出

PHP exec() jar java file not return any output

我有一个 jar 文件可以将 Crystal 报告转换成 PDF,我已经 运行 它在控制台上并且成功了。

当我 运行 它在控制台上时。

D:\report>java -jar PrintResumePDF.jar
The PDF is created!!.

但是当我尝试在 PHP 中执行 运行 时,它没有在输出中给出任何结果。即使创建了 PDF 文件或转换过程成功。

这是我的 PHP 代码:

<?php 
   exec("java -jar PrintResumePDF.jar 2>&1", $return);
   print_r($return);
?>

java/jar 的输出:PDF 已创建! 未在 PHP 上打印,它只是空白页。抱歉我的英语不好,请帮助我。

希望这对您来说是一个有用的答案,但我无法在 PHP7.2 上使用任何产生输出的任意命令复制它,因此您的 PHP 代码至少可能正确。

例如这段代码:

<?php
// Stderr
exec("curl --aaa 2>&1", $return1);
print_r($return1);
// Stdout
exec("echo hello", $return2);
print_r($return2);

输出这个:

$ php foo.php 

Array
(
    [0] => curl: option --aaa: is unknown
    [1] => curl: try 'curl --help' or 'curl --manual' for more information
)
Array
(
    [0] => hello
)

我只能建议检查任何相关日志 and/or 将输出重定向到一个临时文件,因为如果命令正确执行,那么它显然要么没有从此执行环境打印任何内容,要么你将输出放到别处。