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 20 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
PHP自动生成表单代码分享
Jun 19 PHP
PHP中session跨子域的三种实现方法
Jul 25 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
javascript中 try catch用法
2015/08/16 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python正则抓取网易新闻的方法示例
2017/04/21 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
parser.add_argument中的action使用
2020/04/20 Python
什么是Python中的匿名函数
2020/06/02 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
会议邀请书范文
2014/02/02 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS