从PHP 5.2运行Java的推荐方法是什么?

时间:2009-12-26 12:52:54

标签: java php php-5.2

我想从PHP 5.2调用Java,在Web服务器或命令行脚本上运行。

从PHP 4开始,这似乎很简单,只需要安装PECL Java extension

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扩展或PHP 4 Java扩展提供的接口。 Java程序相当小,只需要在调用之间保留少量状态,不需要异步运行。 PHP脚本只会同时运行少量实例。

这也需要部署到多台机器上(运行Ubuntu 9.x和Debian Lenny),因此安装起来应该很简单。

5 个答案:

答案 0 :(得分:3)

这个项目似乎是一个不错的选择:http://php-java-bridge.sourceforge.net/pjb/

答案 1 :(得分:2)

由于你想在java站点保持状态,我要么使用一个监听普通套接字的java进程,要么使用一个简单的嵌入式web服务器(winstonejetty)如果你更多流利的写作servlet。此相关问题列出了其他一些可能性:What is the best approach for IPC between Java and C++?

答案 2 :(得分:0)

现在你要求的很多,但是你可以看一下Caucho的Resin,特别是他们的Quercus,它是PHP的100%Java实现,allows integration of Java and PHP

答案 3 :(得分:0)

我有一个使用Java程序获取某些数据的项目。这很简单,但我发现了

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

工作正常。

答案 4 :(得分:0)

Zend Server还有一个内置守护程序,允许您从PHP中访问Java功能。它开箱即用。