Каков рекомендуемый способ запуска Java из PHP 5.2? - PullRequest
1 голос
/ 26 декабря 2009

Я хочу вызывать Java из PHP 5.2, работающего либо на веб-сервере, либо из сценария командной строки.

В PHP 4 это кажется простым и включает в себя установку расширения PECL Java .

Пример кода из расширения PHP 4:

<?php
  // get instance of Java class java.lang.System in PHP
  $system = new Java('java.lang.System');

  // demonstrate property access
  echo 'Java version=' . $system->getProperty('java.version') . '<br />';
?>

Однако это расширение не существует в PHP 5.

Какая ближайшая альтернатива для PHP 5?

редактирование:

На самом деле я ищу интерфейс, похожий на либо расширение C PHP, либо на расширение, предоставляемое расширением Java 4 PHP. Java-программа довольно мала и ей нужно только сохранять небольшое количество состояний между вызовами и не нужно запускать асинхронно. PHP-скрипт будет одновременно запускать только небольшое количество экземпляров.

Это также необходимо будет развернуть на нескольких машинах (под управлением Ubuntu 9.x и Debian Lenny), поэтому установка должна быть простой.

Ответы [ 5 ]

3 голосов
/ 26 декабря 2009

Этот проект выглядит неплохо: http://php -java-bridge.sourceforge.net / pjb /

2 голосов
/ 26 декабря 2009

Поскольку вы хотите сохранить состояние на java-сайте, я бы либо использовал java-процесс, который прослушивает простой сокет, либо использовал простой встроенный веб-сервер ( winstone или jetty ) если вы более свободно пишете сервлеты. Некоторые другие возможности перечислены в этом связанном вопросе: Каков наилучший подход для IPC между Java и C ++?

0 голосов
/ 14 декабря 2010

Zend Server также имеет встроенный демон, позволяющий получать доступ к функциям Java из PHP. Он работает прямо из коробки.

0 голосов
/ 26 декабря 2009

У меня есть проект, который использует программу Java для получения некоторых данных. Это довольно просто, но я обнаружил, что

 $java_command="cd /var/java_dir && java my_java_program $myparam1 $myparam2";
 $result=exec($java_command,$output,$return_code);

работает просто отлично.

0 голосов
/ 26 декабря 2009

Теперь вполне то, что вы просили, но вы могли бы взглянуть на смолу Коучо и, в частности, их Quercus , который является 100% -ной реализацией Java на PHP, это позволяет интегрировать Java и PHP .

...