我有一个可用的 web php 应用程序。我正在使用 win 7 并使用 apache。
现在我尝试在 php 中执行此 java 命令并在网站上显示结果:
exec("java -jar C:\webroot\ipt\themes\ipt\views\site\Skills.jar 5 10 5.5 10 2 5 8 3 10 6 11 2 15 4", $output);
for ($index = 0; $index < count($output); $index++) {
echo $output[$index]." ";
}
但是 $output 是一个空数组——没有输出。 我没有收到任何错误或崩溃。输出只是一个基本字符串。 我尝试在 cmd 中输入相同的命令,它可以正常工作 - 返回预期的输出。
所以我尝试了不同的命令来查看 exec() 是否有问题,所以我尝试了“ipconfig”,它在网站上完美地显示了输出。
因此,我认为它与 PHP 或 Apache(或两者)有关。
我搜索了一些其他人的类似问题并尝试:
- 在命令中输入 java 的完整路径:C:\Program Files (x86)\Java\jre1.8.0_20\bin\java - jar ... - 没有用
- 将 .jar 文件的权限更改为完全访问权限(包括父目录)- 没用。
所以想请教一下有没有人不知道这个问题的解决方法。
谢谢
最佳答案
确保您能够在控制台中直接运行此命令而不会出现任何问题。
将您的 exec
更改为以下内容:
exec("java -jar C:\\webroot\\ipt\\themes\\ipt\\views\\site\\Skills.jar 5 10 5.5 10 2 5 8 3 10 6 11 2 15 4 2>&1", $输出);
关于java - PHP exec() 在执行 java -jar 命令时返回空数组(无输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25865363/