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

时间:2014-09-16 09:35:29

标签: java php apache jar

我有一个有效的网络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文件的permisions更改为完全访问权限(包括父目录) - 不起作用。

所以我想问一下是否有人不知道解决这个问题的方法。

由于

1 个答案:

答案 0 :(得分:1)

确保您可以直接在控制台中运行此命令而不会出现任何问题。

将您的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", $output);