分享
 
 
 

连接PHP和 Java -- PHP/Java Bridge [3]

王朝java/jsp·作者佚名  2006-03-18
窄屏简体版  字體: |||超大  

安装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来确定这些软件包的版本。

[/url]

[url=http://www.sourceforge.net/projects/php-java-bridge](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>

(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

phpinfo();

print "\n\n";

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

$arr=$v->getProperties();

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

print $key . " -> " . $value . "<br>\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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有