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
PHP 函数语法介绍一
Jun 14 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
Mar 01 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
PHP sdk实现在线打包代码示例
Dec 09 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中判断变量为空的几种方法分享
2013/08/26 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
jQuery示例收集
2010/11/05 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python 深入理解yield
2008/09/06 Python
python网络爬虫采集联想词示例
2014/02/11 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python 标准差计算的实现(std)
2019/07/29 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
大学毕业感言
2014/01/10 职场文书
三个儿子教学反思
2014/02/03 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
喋血孤城观后感
2015/06/08 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript