|
/**============================================================
* @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的安裝:正常安裝即可
①先下載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點中獲得的)
/**============================================================
* 其他使用方法和注意事項
*
==============================================================**/
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下面
/**============================================================
* 附錄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);
bridge --Java Java.inc JavaProxy.php --WEB-INF --cgi --... --lib php-script.jar php-servlet.jar --pear web.xml weblogic.xml
php技術:PHP-Java-Bridge使用筆記,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。