2015/06/22

【PHP】讓PHP也能使用外部jar -- Java Bridge

先上工具:PHP/Java Bridge

原理請看官網,以下只教學如何安裝及使用


【安裝】


下載位置(版本:6.2.1)

下載後為zip壓縮檔,解壓縮後把"JavaBridge.war"放在server裡面的資料夾「JavaBridge」

打開cmd,cd至JavaBridge( 切換磁區指令:cd /d D:/ ),並執行下列指令
java -classpath JavaBridge.war TestInstallation
會出現兩個資料夾跟兩個檔案

此時執行ext/JavaBridge.jar,並發現預設的port會使用:8080

若:8080已被使用則+1變成:8081 以此類推

然後開啟瀏覽器輸入:http://localhost/JavaBridge/test.php

會列出phpinfo,拉到最下面若有出現JAVA環境的資訊就大概成功了!



【使用外部jar】


由於網路上面的教學多為舊的資料

所以會使用java_require()去載入外部的jar

但是在現在的版本作者已經移除了java_require()的功能

若使用java_require()則會出現Error

現在的做法是先打開剛剛執行JavaBridge.jar時所產生的JavaBridge.log

找到java.ext.dirs,後面的路徑就是你該放jar的地方

例如我的位置為"C:\Program Files\Java\jre1.8.0_45\lib\ext;C:\Windows\Sun\Java\lib\ext"

"C:\Windows\Sun\Java\lib\ext"找不到該資料夾

所以就放在"C:\Program Files\Java\jre1.8.0_45\lib\ext"中

之後開啟工作管理員,結束java的處理程序再重啟JavaBridge.jar就會自動載入外部jar檔

而PHP的呼叫方式為
//內建的類別
$a = new Java("java.lang.String", "Hi Java!");
echo $a;

//外部jar的類別
$myjar = new Java("com.myjar.something");
$myjar->addElement("yes");
$myjar->addElement("no");
//多個參數
$youjar = new Java("com.youjar.Attribute","Identity", $myjar);
當然寫法還是照PHP去寫

原本在java使用函式為 myjar.addElement("yes");

要改成  $myjar->addElement("yes");



參考文章:
Working with Php-Java Bridge
VM Bridge FAQ
VM Bridge

沒有留言:

張貼留言