PHP5研究中心:http://blog.csdn.net/haohappy2004/
安裝 PHP/Java Bridge
如果你用的是 RedHat Linux 系統( RedHat Enterprise 或 Fedora ),可以從主頁上下載 32 位 RPM 包,然后輸入 rpm -i php-java-bridge-v.x.y-z-i386.rpm 來安裝。如果你用的是 64 位系統和 64 位虛擬機,需要安裝 64 位 RPM 包。其它系統看下面的介紹。
(1)
在
安裝
PHP/Java Bridge
之前,你需要確定已經安裝了:
Java1.4
或更高版本,
gcc3.2
或更高版本,
apache1.3
或更高版本,
autoconf2.57
或更高版本,
Done
libtool 1.4.3
或更高版本,
Done
automake1.6.3
或更高版本,
GNU make Done
php4.3.2
或更高版本
你可以用命令 java -version, gcc --version, apachectl -version, libtool --version, automake --version, make null --version, autoconf --version and php-config –version 來確定這些軟件包的版本。
(2)
下載
PHP/Java Bridge
的源代碼
http://www.sourceforge.net/projects/php-java-bridge
(3)
解壓縮:
cat php-java-bridge_v.x.y.tar.bz2 | bunzip2 | tar xf –
(4)
在解壓縮出來的目錄
php-java-bridge-v.x.y
里執行命令:
phpize && ./configure --disable-servlet --with-java=/opt/IBMJava2-14 && make CFLAGS="-m32"
為 32 位 JVM 生成模塊。
(5)
安裝生成的模塊
su -c 'make install'
<enter password><p></p></enter>
(6) PHP/Java Bridge 可以作為 WEB 服務器的 sub-component 運行,把下面這行加入到 php.ini 中,或者把這一行寫到一個文件 java.ini ,再把 java.ini 復制到包含 php 模塊描述的目錄中去,如 /etc/php.d/ 。
extension = java.so
[java]
(7)重啟 apache 服務器: /www/apache/bin/apachectl restart
(8)現在開始可以測試 web 安裝。復制 test.php 到站點根目錄下 ( 如 /var/www/html) ,通過瀏覽器訪問。你可以看到 bridge 模塊已經激活并正在運行。 Bridge 會隨著服務器的啟動而啟動。
Test.php
<?php </span>
phpinfo();
print "/n/n";
$v = new java("java.lang.System");
$arr=$v->getProperties();
foreach ($arr as $key => $value) {
print $key . " -> " .
$value . "
/n";
}
?>
Windows 平臺下的安裝:
<!--[if !supportLists]--> 1. <!--[endif]--> 解壓縮 php-java-bridge_2.0.4-win32-php5.zip ,復制所有文件到 C:/php 下
<!--[if !supportLists]--> 2. <!--[endif]--> 雙擊 c:/php5/JavaBridge.jar 或者在命令行執行 java -jar JavaBridge.jar
<!--[if !supportLists]--> 3. <!--[endif]--> php-cgi test.php >result.html (test.php源碼見上例)
<!--[if !supportLists]--> 4. <!--[endif]--> 用瀏覽器打開 result.html ,即可看到運行結果
段測試程序首先把 php 環境的所有選項輸出,然后新建了一個 Java 對象并返回它的相關信息。
運行結果:
<!--[if gte vml 1]><v:shapetype id="_x0000_t75"coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"filled="f" stroked="f"><v:stroke joinstyle="miter" /><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0" /><v:f eqn="sum @0 1 0" /><v:f eqn="sum 0 0 @1" /><v:f eqn="prod @2 1 2" /><v:f eqn="prod @3 21600 pixelWidth" /><v:f eqn="prod @3 21600 pixelHeight" /><v:f eqn="sum @0 0 1" /><v:f eqn="prod @6 1 2" /><v:f eqn="prod @7 21600 pixelWidth" /><v:f eqn="sum @8 21600 0" /><v:f eqn="prod @7 21600 pixelHeight" /><v:f eqn="sum @10 21600 0" /></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /><o:lock v:ext="edit" aspectratio="t" /></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:415.5pt;height:273pt'><v:imagedata src="file:///C:/DOCUME~1/Haohappy/LOCALS~1/Temp/msohtml1/01/clip_image001.png"o:title="pjbridge_win" /></v:shape><![endif]--><!--[if !vml]-->
<!--[endif]-->
java.runtime.name -> Java(TM) 2 Runtime Environment, Standard Edition
sun.boot.library.path -> C:/Program Files/Java/j2re1.4.2_05/bin
java.vm.version -> 1.4.2_05-b04
java.vm.vendor -> Sun Microsystems Inc.
java.vendor.url -> http://java.sun.com/
path.separator -> ;
java.vm.name -> Java HotSpot(TM) Client VM
file.encoding.pkg -> sun.io
user.country -> CN
sun.os.patch.level -> Service Pack 2
java.vm.specification.name -> Java Virtual Machine Specification
user.dir -> C:/php
java.runtime.version -> 1.4.2_05-b04
java.awt.graphicsenv -> sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs -> C:/Program Files/Java/j2re1.4.2_05/lib/endorsed
os.arch -> x86
java.io.tmpdir -> C:/DOCUME~1/506C/LOCALS~1/Temp/
line.separator ->
java.vm.specification.vendor -> Sun Microsystems Inc.
user.variant ->
os.name -> Windows XP
sun.java2d.fontpath ->
java.library.path -> C:/Program Files/Java/j2re1.4.2_05/bin;.;C:/WINDOWS/system32;C:/WINDOWS;C:/j2sdk1.4.2_05/bin;.;C:/j2sdk1.4.2_05/lib;C:/j2sdk1.4.2_05/jre/lib;C:/Program Files/SecureCRT 3.0;C:/WINDOWS/system32;C:/Program Files/ChemOffice2002/Common/DLLs
java.specification.name -> Java Platform API Specification
java.class.version -> 48.0
java.util.prefs.PreferencesFactory -> java.util.prefs.WindowsPreferencesFactory
os.version -> 5.1
user.home -> C:/Documents and Settings/506C
user.timezone ->
java.awt.printerjob -> sun.awt.windows.WPrinterJob
file.encoding -> GBK
java.specification.version -> 1.4
java.class.path -> C:/php/JavaBridge.jar
user.name -> 506C
java.vm.specification.version -> 1.0
java.home -> C:/Program Files/Java/j2re1.4.2_05
sun.arch.data.model -> 32
user.language -> zh
java.specification.vendor -> Sun Microsystems Inc.
awt.toolkit -> sun.awt.windows.WToolkit
java.vm.info -> mixed mode
java.version -> 1.4.2_05
java.ext.dirs -> C:/Program Files/Java/j2re1.4.2_05/lib/ext
sun.boot.class.path -> C:/Program Files/Java/j2re1.4.2_05/lib/rt.jar;C:/Program Files/Java/j2re1.4.2_05/lib/i18n.jar;C:/Program Files/Java/j2re1.4.2_05/lib/sunrsasign.jar;C:/Program Files/Java/j2re1.4.2_05/lib/jsse.jar;C:/Program Files/Java/j2re1.4.2_05/lib/jce.jar;C:/Program Files/Java/j2re1.4.2_05/lib/charsets.jar;C:/Program Files/Java/j2re1.4.2_05/classes
java.vendor -> Sun Microsystems Inc.
file.separator -> /
java.vendor.url.bug -> http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding -> UnicodeLittle
sun.cpu.endian -> little
sun.cpu.isalist -> pentium i486 i386
到這里,我們就可以自由地和 Java 對象進行通訊,實現了 PHP 和 Java 的橋接。
<!--[if !supportLists]--> 5. <!--[endif]--> 接下來修改你的 php.ini ( C:/Windows/php.ini ),把 extension=php_java.dll 前的分號 ; 去掉
注意, php 也自帶有一個 php_java.dll ,位于 C:/php/extensions 下,和 php-java-bridge 提供的不一樣。為避免出錯,要注意設置 php.ini 中的 extension_dir ,默認 extension_dir = "./" 即指向 C:/php 目錄。
參考資料:
[1] JSR 223: Scripting for the Java TM Platform
[2] PHP/Java Bridge @ sourceforge.net
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=627896
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
