Запустите файл класса Java из скрипта PHP на веб-сайте

У меня есть веб-сайт и вы хотите разрешить пользователю запускать Java-файл на сервере с веб-сайта.

Я хочу, чтобы пользователь нажал кнопку, которая будет запускать файл Java на сервере. Все, что будет напечатано в стандарте программой Java, будет распечатано на веб-сайте для просмотра пользователем.

Как это можно сделать (вызов программы Java из PHP и подача стандарта из файла Java обратно на сайт PHP в режиме реального времени)?

Обновить:

Спасибо за ответы о том, как запустить программу Java с PHP. Однако я также хочу иметь возможность, так как программа Java печатает на stdout, где она будет печатать много текста по мере его выполнения, чтобы иметь возможность распечатывать это на веб-странице, чтобы пользователь мог видеть, на каком этапе Программа Java находится в ее исполнении.

Как это можно сделать и требует ли он каких-либо дополнительных AJAX или JavaScript или что-то в этом роде?

Related of "Запустите файл класса Java из скрипта PHP на веб-сайте"

Функция PHP exec() – это путь, но вы должны быть очень осторожны в том, что вы разрешаете выполнить. Другими словами, не полагайтесь на ввод пользователя, поскольку это может потенциально поставить под угрозу весь ваш сервер.

Вызов приложения запуска Java-приложения с помощью exec, вы можете выполнить любое приложение Java с PHP, например

 <?php exec("java -jar file.jar arguments", $output); ?> 

Поскольку вы упоминаете в реальном времени, я бы предложил настроить PHP на Java Bridge. Инициализация JVM по каждому запросу занимает много ресурсов.

Мост PHP / Java

PHP / Java Bridge – это реализация потокового сетевого протокола на основе XML, который может использоваться для подключения собственного скриптового движка, например PHP, Scheme или Python, с виртуальной машиной Java или ECMA 335. Он до 50 раз быстрее, чем локальный RPC через SOAP, требует меньше ресурсов на стороне веб-сервера. Он быстрее и надежнее, чем прямая связь через интерфейс Java Native, и он не требует дополнительных компонентов для вызова процедур Java из PHP или PHP-процедур с Java.

Проверьте exec и другие функции выполнения программы . Но делайте это очень осторожно, или это рецепт эксплойтов.

Я предпочел бы переносить класс Java в апплет Java, который затем можно вызвать из javascript-запроса на стороне клиента: см. http://www.rgagnon.com/javadetails/java-0170.html

В противном случае, если вызов выдает много текста на стандартный вывод или класс должен запускаться на сервере из-за системных зависимостей, вызов из php exec – это путь, но вам, вероятно, понадобится что-то вроде cometd для отображения текст на клиенте в режиме реального времени. Существуют реализации для различных наборов инструментов javascript, таких как Dojo или jQuery.

Для серверной стороны здесь, похоже, реализована комета в php.

Надеюсь, это поможет…

Philippe

Является ли функция passthru какой-либо функцией?

http://www.php.net/manual/en/function.passthru.php