0

编辑 1

难道是当jar在后台执行时,浏览器已经完成了php文件的执行,因此它不显示jar的输出?

请问有人吗?


我在从 php 执行 jar 文件时遇到一些问题。

我做的时候没有任何问题

java -jar myjar.jar

在我的终端中,因为它执行得很好。

但是当我这样做时

echo exec('java -jar myjar.jar');

在 php 中什么也没有出现。当我输入 2>&1 时,它会返回 0 或 Array(),具体取决于我使用的是 exec 还是 system。

我也有一个问题,但我不知道它是否相关。当我尝试做

echo exec('java -version');

也没有返回任何内容。但在终端它又可以正常工作了。

请问有人吗?

谢谢!

4

1 回答 1

0

检查您使用的 PHP 函数的文档。

https://www.php.net/manual/en/function.exec.php

返回值 命令结果的最后一行。如果您需要执行命令并将命令中的所有数据直接传回而不受任何干扰,请使用 passthru() 函数。失败时返回 false。

要获取执行命令的输出,请务必设置并使用输出参数。

我无法理解该函数的返回值。在失败的情况下它是错误的 - 这是否意味着它是一个布尔值,意味着在没有失败发生的情况下为真?也许这解释了为什么在示例中没有使用 exec 的返回值。

于 2021-02-17T19:48:12.307 回答