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 '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 類

  • 先建一個測試類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 <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包,有會的同學還請指教哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM