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文本数据库的搜索方法
Oct 09 PHP
cache_lite试用
Feb 14 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP处理Oracle的CLOB实例
Nov 03 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
Symfony2函数用法实例分析
Mar 18 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
PHP实现唤起微信支付功能
Feb 18 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php实现水仙花数示例分享
2014/04/03 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
详解Python中的四种队列
2018/05/21 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
运动会演讲稿
2014/05/07 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
工地食品安全责任书
2015/05/09 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
vue使用watch监听属性变化
2022/04/30 Vue.js