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 Smarty模板生成html文档的方法
Apr 12 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
php字符串分割函数用法实例
Mar 17 PHP
php获取远程文件内容的函数
Nov 02 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
Laravel相关的一些故障解决
Aug 19 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/11/25 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
php文件操作相关类实例
2015/06/18 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
JS中Location使用详解
2015/05/12 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
Pandas读写CSV文件的方法示例
2019/03/27 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
C# .NET面试题
2015/11/28 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
学校万圣节活动方案
2014/02/13 职场文书
竞聘自述材料
2014/08/25 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
Apache POI的基本使用详解
2021/11/07 Servers