標籤:
1. PHP調用JAVA方法
1.1. 軟體需求
- 下載php-java-bridge_6.2.1_documentation.zip,為: http://php-java-bridge.sourceforge.net/pjb/download.php
- JavaBridge.jar:將上面的php-java-bridge_6.2.1_documentation.zip解壓得到一個JavaBridge.war,將JavaBridge.war重新命名為JavaBridge.jar,再次用WinRAR對JavaBridge.jar解壓到JavaBridge目錄,在JavaBridge\WEB-INF\LIB裡面可以找到JavaBridge.jar和Lucene.jar。
- JDK:JavaBridge是由Java語言實現的,所以必須安裝JDK實現對jar檔案執行提供支援。並配好環境變數。
1.2. 運行JavaBridge
- 雙擊運行JavaBridge\WEB-INF\LIB裡的JavaBridge.jar,應該會彈出一個可以選擇的對話方塊,如果沒有彈出,是因為沒有安裝JDK或者檔案關聯錯誤,解決方案是安裝JDK或者運行“start javaw -jar JavaBridge.jar”(內容儲存到*.bat裡面,而*.bat與JavaBridge.jar同一個目錄)替代雙擊。彈出對話方塊後不用選擇,直接點擊“確定”即可。正確如下:
1.3. 測試JavaBridge
require_once("java/Java.inc");$system = new Java(‘java.lang.System‘);$s = new Java("java.lang.String", "php-java-bridge config...<br><br>");echo $s;print ‘Java version=‘.$system->getProperty(‘java.version‘).‘ <br>‘;print ‘Java vendor=‘ .$system->getProperty(‘java.vendor‘).‘ <br>‘;print ‘OS=‘.$system->getProperty(‘os.name‘).‘ ‘.$system->getProperty(‘os.version‘).‘ on ‘.$system->getProperty(‘os.arch‘).‘ <br>‘;$formatter = new Java(‘java.text.SimpleDateFormat‘,"EEEE, MMMM dd, yyyy ‘at‘ h:mm:ss a zzzz");print $formatter->format(new Java(‘java.util.Date‘)).‘ <br>‘.‘ <br>‘;
- 找到JavaBridge\WEB-INF\LIB裡的JavaBridge.jar,解壓JavaBridge.jar可以在JavaBridge\META-INF裡面找到java目錄,完全拷貝java目錄與test.php同目錄,然後運行:http://localhost/test.php,會有如下內容輸出,說明JavaBridge安裝成功了
1.4. 在PHP中調用自訂的JAVA 類
public class Test { private String name = ""; // setter and getter public void setName(String name) { this.name = name; } public String getName() { return this.name; } //加法 public float add(float num1, float num2) { return num1 + num2; }}
- 編寫完類,將Test.java編譯產生class檔案,將Test.class拷貝到C:\Program Files\Java\jre7\classes目錄下,因為版本號碼的不同,jre7檔案夾名字可能不同。安裝JDK時候預設沒有C:\Program Files\Java\jre7\classes,需要手動建立。
- 修改Test.php的內容為:
//自訂類測試require_once("java/Java.inc");$test = new Java("Test"); //產生執行個體$test->setName("哈哈,PHP調用JAVA的方法!"); //後面的調用就跟在php中調用類方法一樣print "調用類Test的getName方法,傳回值為:".$test->getName()."<br>";print "調用Test的add方法,傳回值為:".$test->add(11.2, 15.7);
- 再訪問http://localhost/test.php,頁面就輸出下面內容了:
- 就這個東東搞了一天才搞出來,哎 網上找了好多方法都行不通,這樣每次都要把class移到jre目錄裡不方便,加上java_require("Test.jar"); 引用jar包卻報這個錯: Warning: java_require() not supported anymore. Please use <a href="http://php-java-bridge.sourceforge.net/pjb/webapp.php>tomcat or jee hot deployment</a> instead in D:\wamp\www\java\Java.inc on line 1656 不知道怎麼搞才能直接引用jar包,有會的同學還請指教哦!
PHP調用JAVA方法