编辑1
可能是在jar在后台执行时,浏览器已经完成了php文件的执行,因此它没有显示jar的输出?
有人请吗?
我在从php执行jar文件时遇到一些问题。
我在做
时没有任何问题java -jar myjar.jar
在我的终端中,因为它执行得很好。
但是当我做的时候
在php中没有出现任何内容。 当我输入2>& 1时,它会返回0或Array(),具体取决于我是否使用exec或system。echo exec('java -jar myjar.jar');
我也有一个问题,但我不知道它是否相关。我试图做的时候
echo exec('java -version');
也没有任何回报。但在终端,它再次正常工作。
有人请吗?
谢谢!
答案 0 :(得分:0)
查看您使用的 PHP 函数的文档。
https://www.php.net/manual/en/function.exec.php:
返回值 命令结果的最后一行。如果您需要执行一个命令并且让命令中的所有数据直接传回而不受任何干扰,请使用 passthru() 函数。 失败返回 false。
要获取执行命令的输出,请务必设置并使用输出参数。
我无法理解该函数的返回值。在失败的情况下它是假的——这是否意味着它是一个布尔值,在没有发生故障的情况下是真的?也许这就解释了为什么在示例中没有使用 exec 的返回值。