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脚本的10个技巧(4)
Oct 09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
php cc攻击代码与防范方法
Oct 18 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
php权重计算方法代码分享
Jan 09 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
php简单分页类实现方法
Feb 26 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
一个php作的文本留言本的例子(三)
2006/10/09 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
python中正则表达式的使用详解
2014/10/17 Python
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
汉语言文学专业求职信
2014/06/19 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
php修改word的实例方法
2021/11/17 PHP
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android