1

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

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

这也需要部署到多台机器上(运行 Ubuntu 9.x 和 Debian Lenny),所以它应该很容易安装。

4

5 回答 5

3

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

于 2009-12-26T14:37:18.533 回答
2

由于您想在 java 站点上保持状态,如果您更流利地编写 servlet ,我会使用侦听普通套接字的 java 进程或使用简单的嵌入式 Web 服务器(winstonejetty )。在这个相关问题中列出了其他一些可能性:Java 和 C++ 之间 IPC 的最佳方法是什么?

于 2009-12-26T17:02:33.483 回答
0

现在完全符合您的要求,但您可以看看 Caucho 的Resin,特别是他们的Quercus,它是 PHP 的 100% Java 实现,它允许集成 Java 和 PHP

于 2009-12-26T12:57:56.397 回答
0

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

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

工作得很好。

于 2009-12-26T16:46:32.700 回答
0

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

于 2010-12-13T23:10:18.943 回答