讓PHP在Server端和Java溝通的工具

1 篇文章 / 0 new
author
讓PHP在Server端和Java溝通的工具
php-java-bridge 是可以讓PHP在Server端和Java溝通的工具
即是可以在PHP裡直接使用JAVA編譯好的class檔, 不多說廢話,安裝方法
1、首先確定你的PHP和Apache伺服器及JDK(or JRE也可)都已安裝完成 <-----這不用我教吧
2、上網下載 php-java-bridge
3、將下載回來的 php-java-bridge解壓縮,解壓後資料匣裡會有一個JavaBridge.war,再同樣將這個JavaBridge.war解壓縮(win rar即可解)
4、解壓後可從 WEB-INF資料匣裡的cgi資料匣找到java-x86-windows.dll(檔名應版本不同有變更 php5st.dll),及WEB-INF資料匣裡的lib資料匣找到JavaBridge.jar
5、將java-x86-windows.dll和JavaBridge.jar 複制到PHP的外掛資料匣(如C:\AppServ\php\ext),並將java-x86-windows.dll改成php_java.dll
補充需下載 Java.inc 將其複製到 C:\AppServ\php\ext\Java 下
6、修改php.ini檔案
   如果php.ini原本沒有以下內容,請自行加上,如果原本就有以下內容,請修改成如下
  include_path = ".;C:\AppServ\php5\ext"
   extension=php_java.dll
   [Java]
   java.socketname = 9267
   ;java.java = C:\Program Files\Java\jdk1.5.0_08\bin\java   <---如果是用JDK執行就寫這行
   ;java.java_home = C:\Program Files\Java\jdk1.5.0_08       <---如果是用JDK執行就寫這行
   java.java = C:\Program Files\Java\jre1.5.0_07\bin\javaw  <---用JRE執行就寫這行
   java.java_home = C:\Program Files\Java\jre1.5.0_07       <---用JRE執行就寫這行
   java.log_level = 2
 
7、重新起動Apache
8、從解壓的JavaBridge.war資料匣裡找到test.php,把它放到Apache伺服器的網頁目錄下去執行(如 http://localhost/test.php)
9、執行 http://localhost/test.php
   觀看JAVA這一項
 
   java
   java support          Enabled
   java bridge                  3.1.8rc1
   java.java_home          C:\Program Files\Java\jre1.5.0_07
   java.java           C:\Program Files\Java\jre1.5.0_07\bin\javaw
   java.log_file          <stderr>
   java.log_level          2
   java.persistent_connections  On
   java.security_policy  Off
   java command          C:\Program Files\Java\jre1.5.0_07\bin\javaw -Djava.library.path=C:\AppServ\php\ext -Djava.class.path=C:\AppServ\php\ext/JavaBridge.jar -Djava.awt.headless=true -Dphp.java.bridge.base=C:\AppServ\php\ext php.java.bridge.Standalone INET_LOCAL:9267 2
   java status                  not running
   java server                  9267
 
   看倒數第二項  java status的狀態是不是not running (這是因為沒有啟動JavaBridge.jar)
 
10、因為不可能每次開機都手動去啟動JavaBridge.jar 所以需寫一個批次檔,內容如下
       @echo off
    start javaw -jar JavaBridge.jar
 
    把它存成phpJavaBridge.bat,同樣放在PHP的外掛資料匣裡(這裡是C:\AppServ\php\ext)
    把該檔建立捷徑,把建立好的捷徑放到啟動裡(這裡是C:\Documents and Settings\All Users\「開始」功能表\程式集\啟動)
    這樣一來,以後每次開機後就會自動啟動C:\AppServ\php\ext 資料匣裡的phpJavaBridge.bat
 
11、重開機後,開啟流覽器再從新執行http://localhost/test.php
    再次觀看JAVA選項
 
    java
    java support           Enabled
    java bridge           3.1.8rc1
    java.java_home           C:\Program Files\Java\jre1.5.0_07
    java.java            C:\Program Files\Java\jre1.5.0_07\bin\javaw
    java.log_file           <stderr>
    java.log_level           2
    java.persistent_connections  On
    java.security_policy   Off
    java command           C:\Program Files\Java\jre1.5.0_07\bin\javaw -Djava.library.path=C:\AppServ\php\ext -Djava.class.path=C:\AppServ\php\ext/JavaBridge.jar -Djava.awt.headless=true -Dphp.java.bridge.base=C:\AppServ\php\ext php.java.bridge.Standalone INET_LOCAL:9267 2
    java status           running
    java server           9267
 
    倒數第二項 java status ,這次狀態應該變成running <----代表JavaBridge.jar已啟動,已可正式使用php-java-bridge
 
12、簡單範例
$system=new Java('java.lang.System'); //調用 Java class:java.lang.System
echo "java版本".$system->getProperty('java.version');
echo "發行廠商".$system->getProperty('java.vendor');
echo "作業系統版本".$system->getProperty('os.name');
echo "java版本".$system->getProperty('os.version');
echo "java版本".$system->getProperty('os.arch');
13、如果是自訂的類別,而不是JAVA內建的類別,則需要把該類別先打包成 jar 再用下面的方式匯入jar檔案
 
    java_require("http://localhost/Test.jar");
                     or
    java_set_library_path("file:D:/www/Test.jar");
Free Web Hosting