PHP-Java-Bridge使用笔记
/**============================================================
* @author ken()
* @date 2014-09-09
*
==============================================================**/
/**============================================================
* 版本与环境
*
==============================================================**/
版本:
1、php版本:最高为5.4,当前测试为5.4/5.3
2、jdk:官方最新版本,当前测试为1.8
3、php-java-bridge:官方最新版本,当前测试为6.2.1
4、操作系统:windows7 32位/64位 | linux(centos6.5)
/**============================================================
* 安装和使用
*
==============================================================**/
第一步:安装
1、jdk的安装:正常安装即可,并配置好环境变量
2、php的安装:正常安装即可
3、php-java-bridge的安装:
①先下载java服务器tomcat正常安装,安装好后,开启tomcat服务器
②将下载的php-java-bridge包放到webapps下面
③等待tomcat执行解析,会在该目录下面生成相同名字的文件夹
④将该文件夹拷贝到apache服务器下面使用
(注:网上的教程可以正常使用,调用java系统函数和简单的jar包,但是对于复杂的jar包会遇到各种各样的问题,所以建议使用这种方式)
第二步:使用
1、不需要开启tomcat(最好关闭掉),开启apache服务器,双击运行javabridge.jar,选择8080端口(javabridge.jar也需要放到java虚拟机下面,参见下面第二点规则)。
2、尽可能的将jar包放到java虚拟机下面,即jre安装下面(比如:c:\program files\java\jre1.8.0_20\lib\ext)
3、在php文件中不需要再引用jar包,因为放到虚拟机下面去了,java会自动调用
(注:第1点中的javabridge.jar是在第一步:安装中第3点中获得的)
/**============================================================
* 其他使用方法和注意事项
*
==============================================================**/
关于php-java-bridge的各种函数使用:
1、高版本的java_require不再使用,也无法使用,由于放到java虚拟机下面,则不需要再手动引入包文件
2、java_value()用于获取值,而且必须使用该函数获取值
(特别注意:如果该值需要存入数据库,那么必须使用该java_value函数,不然会报错,或者无法存入数据库)
3、java_inspect()对实例化或者方法进行print_r类似的输出
(注:请不要直接使用var_dump这样的输出方法输出java的类、方法、变量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))
4、实例化使用 $test = new java("test")的方式,如果实例化的方法中存在参数,可以这样new java("test","pram")
注意事项:
1、务必确保对java.inc的引用,确保引用正确
2、务必确保对jar包放在能引用的地方,比如java虚拟机jre下面
3、在php中调用java使用php的的写法即可
/**============================================================
* 附录1:各种报错问题处理
* 附录2:php实例代码
* 附录3:php-java-bridge文件包解压后目录图
*
==============================================================**/
附录1:各种报错问题处理
1、参照上面的“其他使用方法和注意事项”,大多数问题都是路径引用的问题,只要处理好了,正确获得了,就不会出问题
附录2:php实例代码
require_once("/java/java.inc"); $util = new java("com.sdb.payclient.core.payclientinterfaceutil"); $input = new java("com.ecc.emp.data.keyedcollection"); $signdataput = new java("com.ecc.emp.data.keyedcollection"); $input->put("masterid","111111"); $input->put("orderid","222222"); $signdataput = $util->getsigndata($input); $orig = java_values($signdataput->getdatavalue("orig")); $sign = $signdataput->getdatavalue("sign"); echo java_values($sign);
附录3:php-java-bridge文件包解压后目录图
bridge --java java.inc javaproxy.php --web-inf --cgi --... --lib php-script.jar php-servlet.jar --pear web.xml weblogic.xml
上一篇: 腊肉的存放,几招教你轻松搞定
下一篇: 大数据时代的大展望