PHP-Java-Bridge使用筆記
/**============================================================
* @author ken(695093513@qq.com)
* @date 2014-09-09
*
==============================================================**/
/**============================================================
* 版本與環(huán)境
*
==============================================================**/
版本:
1、PHP版本:最高為5.4,當(dāng)前測試為5.4/5.3
2、JDK:官方最新版本,當(dāng)前測試為1.8
3、php-java-bridge:官方最新版本,當(dāng)前測試為6.2.1
4、操作系統(tǒng):Windows7 32位/64位 | Linux(Centos6.5)
/**============================================================
* 安裝和使用
*
==============================================================**/
第一步:安裝
1、JDK的安裝:正常安裝即可,并配置好環(huán)境變量
2、PHP的安裝:正常安裝即可
3、php-java-bridge的安裝:
①先下載Java服務(wù)器Tomcat正常安裝,安裝好后,開啟Tomcat服務(wù)器
②將下載的php-java-bridge包放到webapps下面
③等待Tomcat執(zhí)行解析,會在該目錄下面生成相同名字的文件夾
④將該文件夾拷貝到Apache服務(wù)器下面使用
(注:網(wǎng)上的教程可以正常使用,調(diào)用java系統(tǒng)函數(shù)和簡單的jar包,但是對于復(fù)雜的jar包會遇到各種各樣的問題,所以建議使用這種方式)
第二步:使用
1、不需要開啟Tomcat(最好關(guān)閉掉),開啟apache服務(wù)器,雙擊運(yùn)行javabridge.jar,選擇8080端口(javabridge.jar也需要放到j(luò)ava虛擬機(jī)下面,參見下面第二點(diǎn)規(guī)則)。
2、盡可能的將jar包放到j(luò)ava虛擬機(jī)下面,即jre安裝下面(比如:C:\Program Files\Java\jre1.8.0_20\lib\ext)
3、在PHP文件中不需要再引用jar包,因?yàn)榉诺教摂M機(jī)下面去了,java會自動(dòng)調(diào)用
(注:第1點(diǎn)中的javabridge.jar是在第一步:安裝中第3點(diǎn)中獲得的)
/**============================================================
* 其他使用方法和注意事項(xiàng)
*
==============================================================**/
關(guān)于PHP-Java-Bridge的各種函數(shù)使用:
1、高版本的java_require不再使用,也無法使用,由于放到j(luò)ava虛擬機(jī)下面,則不需要再手動(dòng)引入包文件
2、java_value()用于獲取值,而且必須使用該函數(shù)獲取值
(特別注意:如果該值需要存入數(shù)據(jù)庫,那么必須使用該java_value函數(shù),不然會報(bào)錯(cuò),或者無法存入數(shù)據(jù)庫)
3、java_inspect()對實(shí)例化或者方法進(jìn)行print_r類似的輸出
(注:請不要直接使用var_dump這樣的輸出方法輸出java的類、方法、變量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))
4、實(shí)例化使用 $test = new Java("Test")的方式,如果實(shí)例化的方法中存在參數(shù),可以這樣new Java("Test","pram")
注意事項(xiàng):
1、務(wù)必確保對java.inc的引用,確保引用正確
2、務(wù)必確保對jar包放在能引用的地方,比如java虛擬機(jī)jre下面
3、在PHP中調(diào)用Java使用PHP的的寫法即可
/**============================================================
* 附錄1:各種報(bào)錯(cuò)問題處理
* 附錄2:PHP實(shí)例代碼
* 附錄3:PHP-Java-bridge文件包解壓后目錄圖
*
==============================================================**/
附錄1:各種報(bào)錯(cuò)問題處理
1、參照上面的“其他使用方法和注意事項(xiàng)”,大多數(shù)問題都是路徑引用的問題,只要處理好了,正確獲得了,就不會出問題
附錄2:PHP實(shí)例代碼
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、JAVA、.NET這三種技術(shù)的區(qū)別分析
- PHP與Java進(jìn)行通信的實(shí)現(xiàn)方法
- 兼容PHP和Java的des加密解密代碼分享
- PHP中調(diào)用JAVA
- PHP調(diào)用JAVA的WebService簡單實(shí)例
- php與java通過socket通信的實(shí)現(xiàn)代碼
- PHP,ASP.JAVA,JAVA代碼格式化工具整理
- PHP和Java 集成開發(fā)詳解分析 強(qiáng)強(qiáng)聯(lián)合
- 兩種php調(diào)用Java對象的方法
- PHP和Java的主要區(qū)別有哪些?哪個(gè)最適合Web開發(fā)語言?
相關(guān)文章
PHP 面向?qū)ο蟪绦蛟O(shè)計(jì)(oop)學(xué)習(xí)筆記(一) - 抽象類、對象接口、instanceof 和契約式編程
面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)是一種計(jì)算機(jī)編程架構(gòu)。OOP的一條基本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對象都能夠接收信息、處理數(shù)據(jù)和向其它對象發(fā)送信息。2014-06-06php使用strtotime和date函數(shù)判斷日期是否有效代碼分享
php使用strtotime和date函數(shù)進(jìn)行檢驗(yàn)判斷日期是否有效代碼分享,大家參考使用吧2013-12-12封裝ThinkPHP的一個(gè)文件上傳方法實(shí)例
這篇文章主要介紹了封裝ThinkPHP的一個(gè)文件上傳方法,以實(shí)例的形式詳細(xì)講述了文件上傳類的實(shí)現(xiàn)以及具體功能講解,非常實(shí)用,需要的朋友可以參考下2014-10-10Zend Framework入門教程之Zend_Session會話操作詳解
這篇文章主要介紹了Zend Framework入門教程之Zend_Session會話操作,結(jié)合實(shí)例形式詳細(xì)分析了Zend_Session會話操作的具體使用技巧,需要的朋友可以參考下2016-12-12