我想从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),因此安装起来应该很简单。
答案 0 :(得分:3)
这个项目似乎是一个不错的选择:http://php-java-bridge.sourceforge.net/pjb/
答案 1 :(得分:2)
由于你想在java站点保持状态,我要么使用一个监听普通套接字的java进程,要么使用一个简单的嵌入式web服务器(winstone或jetty)如果你更多流利的写作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功能。它开箱即用。