java - PHP exec() 在执行 java -jar 命令时返回空数组(无输出)

标签 java php apache jar

我有一个可用的 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/

相关文章:

java - 如何在多个实体中使用通用实体

php - 你如何使用 Javascript 来复制表单域?

php - 使用循环更新数据库

php - cURL超时,你能优雅的处理吗?

php - 电子邮件管道到 php 脚本仅有时有效

java - 匹配字符串中的 css margin 属性

java - 如何在我自己的项目 JAR 中包含外部 JAR

java - 序列化对象时如何让 jackson 忽略 get() 方法

apache - SSL 错误 Zend Framework BoxAPI

Linux Centos 6 如何过滤端口 80 + 破坏 Apache 2