在PHP和Java之间搭建一座桥梁,利用这座桥梁在这两个实体之间建立起一个沟通渠道,在这座桥梁的帮助下,你可以在Java中开发类,然后在PHP中调用它们的方法,同样,在你的Java桌面或Web应用程序中也可以使用PHP脚本。
http://php-java-bridge.sourceforge.net/pjb/是PHP JAVA Bridge的官方网站。可以在此网站查看PHP JAVA Bridge的详细资料。
安装和配置PHP/Java桥
最新的PHP/Java桥zip包可在http://sourceforge.net/projects/php-java-bridge/files/下载JavaBridgeTemplate611.war,此包大小为523KB安装过程依赖于选择哪个Java平台通过这座桥与PHP脚本交互。下面是安装java和php需要的环境和版本。
安装J2SE 1.6或更高版本
配置java环境变量(这个很简单我就不多说了)
安装PHP 5.2.6或更高版本
修改php.ini文件中的配置为:
allow_url_fopen = On
allow_url_include = On
重启Apache。
安装java_EE_sdk-6。
把下载到的JavaBridgeTemplate611.war包(此包的文件名可以修改)直接复制到java_EE_sdk-6的安装目录的C:glassfishv3glassfishdomainsdomain1autodeploy 下。
然后把编译好的java类文件的jar包放入到JavaBridgeTemplate611.war中的lib目录下(跟JavaBridge.jar包在同一目录下)。重启Java EE 6 SDk。
这样就可以在php文件中调用java的方法了。
下面是我的写的java的一个测试的类,文件名为test.java:
public class test { public String name = ""; public void setname(String name){ this.name = name; } public String getname(){ return this.name; } public float add(float num1, float num2){ return num1 + num2; } }
把test.java文件打成test.jar包,然后放到JavaBridgeTemplate611.war中的lib目录下(跟JavaBridge.jar包在同一目录下)。重启Java EE 6 SDk。
下面是php的测试文件test.php
<?php header('Content-type: text/html; charset=utf-8'); require_once("http://localhost:8080/JavaBridgeTemplate611/java/Java.inc"); // 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/>'; echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br/>'; echo 'OS=' . $system->getProperty('os.name') . ' ' . $system->getProperty('os.version') . ' on ' . $system->getProperty('os.arch') . ' <br/>'; // java.util.Date example $formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz"); echo $formatter->format(new Java('java.util.Date')); echo '<br/>'; //下面是php调用自己编写的test.java的方法。 $test = new java("test"); //产生实例“test”是java的jar包名。 $test->setname("php调用java的方法!"); //后面的调用就跟在php中调用类方法一样 echo "调用类test的getname方法,返回值为:------------".$test->getname()."<br>"; echo "调用test的add方法,返回值为:--------".$test->add(11.9, 15.2); ?>
然后运行test.php文件,如果得到下面的结果,表示配置和调用成功。
Java
version=1.6.0_10-rc2
Java vendor=Sun Microsystems Inc.
OS=Windows XP 5.1
on x86
星期二, 四月 06, 2010 at 4:57:59 下午
中国标准时间
调用类test的getname方法,返回值为:------------php调用java的方法!
调用test的add方法,返回值为:--------27.099998