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 多行多列显示
Aug 15 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
php读取文件内容到数组的方法
Mar 16 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
PHP中递归的实现实例详解
Nov 14 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
phpinfo无法显示的原因及解决办法
Feb 15 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 SQL防注入代码集合
2008/04/25 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
JavaScript事件列表解说
2006/12/22 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Win8下python3.5.1安装教程
2020/07/29 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
windows支持哪个版本的python
2020/07/03 Python
Django中ORM的基本使用教程
2020/12/22 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
2015年青年教师工作总结
2015/05/25 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
班级联欢会主持词
2015/07/03 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers