PHP-Java-Bridge使用笔记


Posted in PHP onSeptember 22, 2014

/**============================================================

* @author  ken(695093513@qq.com)

* @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
PHP 相关文章推荐
php 远程图片保存到本地的函数类
Dec 08 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
如何让PHP编码更加好看利于阅读
May 12 PHP
php 中的信号处理操作实例详解
Mar 04 PHP
11个PHPer必须要了解的编程规范
Sep 22 #PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 #PHP
php分页函数完整实例代码
Sep 22 #PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 #PHP
PHP return语句另类用法不止是在函数中
Sep 17 #PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 #PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 #PHP
You might like
PHP4实际应用经验篇(6)
2006/10/09 PHP
Dedecms常用函数解析
2008/02/01 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python面向对象之继承代码详解
2018/01/29 Python
Python实现简单http服务器
2018/04/12 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python生成随机红包的实例写法
2019/09/02 Python
python的等深分箱实例
2019/11/22 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
心得体会怎么写
2013/12/30 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
房屋租赁意向书
2014/04/01 职场文书
《白鹅》教学反思
2014/04/13 职场文书
离婚协议书格式
2014/11/21 职场文书
承诺函格式模板
2015/01/21 职场文书