串連PHP和 Java -- PHP/Java Bridge [3]

來源:互聯網
上載者:User
Haohappy
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'

(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

phpinfo();

print "\n\n";

$v = new java("java.lang.System");

$arr=$v->getProperties();

foreach ($arr as $key => $value) {

print $key . " -> " . $value . "
\n";

}

?>

Windows平台下的安裝:

1. 解壓縮php-java-bridge_2.0.4-win32-php5.zip,複製所有檔案到C:\php下

2. 雙擊c:\php5\JavaBridge.jar或者在命令列執行java -jar JavaBridge.jar

3. php-cgi test.php >result.html (test.php源碼見上例)

4. 用瀏覽器開啟result.html,即可看到運行結果

段測試程式首先把php環境的所有選項輸出,然後建立了一個Java對象並返回它的相關資訊。

運行結果:

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的橋接。

5. 接下來修改你的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 JavaTM Platform

[2] PHP/Java Bridge @ sourceforge.net



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=627896

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.