php 调用java类方法示例

PHP调用java类方法感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!
在网上找了一个用java写的计算词语相似度的程序,但是想在PHP中去调用它,所以这两天就研究了一下在PHP调用java类方法。 我的整个配置环境如下:
OS:win7 apache:2.2 PHP:5.2 JDK:1.6 PHP-java-bridge和java.inc: 5.5.2
下载地址:http://sourceforge.net/projects/PHP-java-bridge/files/

PHP-java-bridge的配置过程如下:
将下载的JavaBridge.jar放到PHP的ext目录下,同时双击运行,并且根据选择的端口号相应修改java.inc中的#define (JAVA_HOSTS,127.0.0.1:8787)为define (JAVA_HOSTS,127.0.0.1:选择的端口号),注意去掉前面的#号。

编写自己的java类,实现PHP调用自定义java类
首先编写java类文件,命名为Test.java,源码如下:

/**
 * PHP调用java类方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
public class Test
{
private String name = ;
//setter and getter
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
//加法
public float add(float num1,float num2)
{
return num1 + num2;
}
}
/***   来自编程之家 jb51.cc(jb51.cc)   ***/
编写完类,将Test.java编译生成class文件,通过JavaBridge来调用我们需要打成jar包,在cmd下执行:jar cf Test.jar Test.class命令打包生成Test.jar包。将生成jar包拷贝到apache的web应用根目录之下,我这里放到PHPjava目录,同时将java.inc也拷到该目录下。

接下来我们就可以在PHP调用了,编写test.PHP文件放入PHPjava目录,代码如下:
PHP代码:

/**
 * PHP调用java类方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
<?PHP
require_once(Java.inc); //必须包含的配置文件
java_require(Test.jar); //引用包含的jar包
$test = new Java(Test); //产生实例
$test->setName(哈哈,PHP调用JAVA的方法!); //后面的调用就跟在PHP调用方法一样
echo 调用类Test的getName方法,返回值为:.$test->getName().<br>;
echo 调用Test的add方法,返回值为:.$test->add(11.2,15.7);

/***   来自编程之家 jb51.cc(jb51.cc)   ***/
运行输出结果为:调用类Test的getName方法,返回值为:哈哈,PHP调用JAVA的方法调用Test的add方法,返回值为:26.9

注意问题:
1.比较高版本的JavaBridge.jar不支持java_require()方法,不知道什么原因,所以我用了低一点的版本;
2.apache的版本也是一个问题,有的版本的apache使得输出结果为Object id #XX;
3.运行时必须打开JavaBridge.jar;
4.PHP输出时有时中文会是乱码,这时将PHP程序文件保存为utf-8格式,同时令网页中的charset=UTF-8即可。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...