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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
数据库的日期格式转换
Oct 09 PHP
深入解析php中的foreach函数
Aug 31 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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来检测proxy
2006/10/09 PHP
php fckeditor 调用的函数
2009/06/21 PHP
PHP抽象类 介绍
2012/06/13 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python遍历目录中的所有文件的方法
2016/07/08 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
Python 一句话生成字母表的方法
2019/01/02 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
值传递还是引用传递
2015/02/08 面试题
领导干部廉政承诺书
2014/03/27 职场文书
爱情保证书大全
2014/04/29 职场文书
爱与责任演讲稿
2014/05/20 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
领导新年致辞2016
2015/07/29 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python