PHP exec () возвращает пустой массив (без вывода) при выполнении команды java -jar

У меня есть работающее веб-приложение php. Я работаю над Win 7 и использую Apache.

Теперь я пытаюсь выполнить эту команду Java в PHP и отобразить результат на сайте:

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 для полного доступа (включая родительские каталоги) — не сработало.

Поэтому я хочу спросить, не знает ли кто-нибудь решение этой проблемы.

Спасибо

2

Решение

Убедитесь, что вы можете без проблем запустить эту команду в консоли напрямую.

Измени свой 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);

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]