**php-java-bridge做橋接的實現原理**:
先打開java的一個監聽端口,php調用java的時候,將對應的方法調用轉發到java的指定端口,由java執行后再將結果返回給php。這種模式是一種比較典型的代理模式,php在這里成為了一個代理轉發器,把java的類調用轉發給后端的java執行。
1.首先下載jdk
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.安裝jdk 并修改配置參數
修改文件權限: chmod 770?jdk-8u5-linux-x64.rpm
解壓:tar -zxvf jdk-8u5-linux-x64.rpm (解壓到 /usr/java/)
編輯文件 /etc/profile,在最后添加:
export JAVA\_HOME=/usr/java/jdk1.8.0_65
export JRE\_HOME=$JAVA\_HOME/jre
export CLASSPATH=.:$JAVA\_HOME/lib:$JRE\_HOME/lib
export PATH=$JAVA\_HOME/bin:$PATH
3.測試是否安裝成功
輸入以下命令
javac
java -version #得到版本號
4.下載二進制的 JavaBridge.jar包、java/Java.inc庫文件
http://php-java-bridge.sourceforge.net/pjb/download.php](https://link.jianshu.com/?t=http://php-java- bridge.sourceforge.net/pjb/download.php)
5.JavaBridge.jar移動到java庫的位置
/usr/java/jdk-8u5/jre/lib/ext
6.在JavaBridge.jar所在目錄運行命令
java -jar JavaBridge.jar SERVLET\_LOCAL:8081 &
注:&表示后臺運行
或者直接帶上日志等級
java -jar JavaBridge.jar SERVLET:8081 3 JavaBridge.log &
注:如果需要開機啟用,配置:**/etc/rc.d/rc.local**
末尾添加:
java -jar JavaBridge.jar所在絕對路徑 SERVLET\_LOCAL:8081 &
7.運行**netstat -nltp**命令查看是否有127.0.0.1:8081進程
8.在php項目目錄下放置 Java.inc文件,編寫php測試代碼 test.php
require_once("Java.inc");
$PBCAgent2G = new \Java("cn.com.infosec.netsign.agent.PBCAgent2G",false);
9.注意由php調取 java的任何方法所得到的值不能直接用,也不能直接打印,會得到一個對象
要使用java_values()函數先接收 才能使用
dump(java_values($PBCAgent2G->rawSign($aa,$c)));