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 相关文章推荐
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
php 文件上传类代码
Aug 06 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
php调用shell的方法
Nov 05 PHP
smarty实现多级分类的方法
Dec 05 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
PHP SOCKET编程详解
May 22 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
eclipse php wamp配置教程
Jun 30 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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
针对初学PHP者的疑难问答(1)
2006/10/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
AJAX的使用方法详解
2017/04/29 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
在django模板中实现超链接配置
2019/08/21 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
谈谈python垃圾回收机制
2020/09/27 Python
python实现逻辑回归的示例
2020/10/09 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
财务部绩效考核方案
2014/05/04 职场文书
发布会邀请函
2015/01/31 职场文书
商务司机岗位职责
2015/04/10 职场文书