首頁 > 後端開發 > PHP問題 > php如何呼叫java方法

php如何呼叫java方法

藏色散人
發布: 2023-03-06 19:14:02
原創
4890 人瀏覽過

php呼叫java方法:先下載「php-java-bridge_6.2.1_documentation.zip」並執行JavaBridge;然後在www目錄下新建test.php;最後在PHP中呼叫自訂的JAVA類別即可。

php如何呼叫java方法

推薦:《PHP影片教學》《java影片教學

#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

  • 在www目錄下新建test.php,內容如下:
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 &#39;Java version=&#39;.$system->getProperty(&#39;java.version&#39;).&#39; <br>&#39;;

print &#39;Java vendor=&#39; .$system->getProperty(&#39;java.vendor&#39;).&#39; <br>&#39;;

print &#39;OS=&#39;.$system->getProperty(&#39;os.name&#39;).&#39; &#39;.

$system->getProperty(&#39;os.version&#39;).&#39; on &#39;.

$system->getProperty(&#39;os.arch&#39;).&#39; <br>&#39;;

$formatter = new Java(&#39;java.text.SimpleDateFormat&#39;,

"EEEE, MMMM dd, yyyy &#39;at&#39; h:mm:ss a zzzz");

print $formatter->format(new Java(&#39;java.util.Date&#39;)).&#39; <br>&#39;.&#39; <br>&#39;;
登入後複製
  • 找到JavaBridge\WEB-INF\LIB裡的JavaBridge.jar,解壓縮JavaBridge.jar可以在JavaBridge\META-INF裡面找到java目錄,完全拷貝java目錄與test.php同目錄,然後運行:http://localhost/test.php,會有以下內容輸出,說明JavaBridge安裝成功了

1.4.  在PHP中呼叫自訂的JAVA 類別

  • 先建一個測試類Test.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
    來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板