设为首页 收藏本站
查看: 402|回复: 0

[经验分享] PHP 5 中调用 Java

[复制链接]

尚未签到

发表于 2017-3-21 12:30:40 | 显示全部楼层 |阅读模式
  PHP 网站所提供的 pecl-5.1.4-Win32.zip 中的 Java 扩展并不好用。不过要想在 PHP 5 中调用 Java 也不难。本文主要来讲解在 Windows 2003 上利用 IIS + PHP 5.1.4 来调用 Java,其它的 PHP 5 版本配置方法也是相同的,这里以 PHP 5.1.4 为例,仅是因为我的安装调试环境是这个。其它环境下的配置是类似的。
  首先,需要安装好 IIS + PHP 5.1.4,安装方法就不详细说明了。这里不需要安装 PECL 扩展,即使安装了也不要打开 PECL 的 Java 扩展,因为我们不用它,那是个过时的版本,根本不能用,但我不知道为什么 PHP 官方会提供这么一个根本不能用的东西。
  在你的网站下建一个 test.php,内容如下:
<?php
    phpinfo();
?>  如果你能在浏览器中打开它看到正确的 PHP 配置信息,就说明 PHP 没有问题了。接下来就可以搞 Java 了。说实话,接下来的内容我觉得比安装 Tomcat 发布一个 JSP 站点都要简单。
  首先下载并安装 J2SE(TM) Development Kit 5.0 Update 6,当然,下载安装 Java(TM) 2 SDK, Standard Edition 1.4.2_11 应该也可以,虽然我没有测试过。另外,你如果安装 J2EE 1.4 SDK 或者 Java EE 5 SDK 也是可以的。
  安装好之后,不需要什么配置(包括环境变量也不需要配置),除非你还需要做其它单独的 Java 开发。
  接下来,下载 Php/Java Bridge 这个项目,只下载 Binary 包就可以了,目前的版本是 php-java-bridge_3.0.8_j2ee.zip,下载之后解压缩,其中有一个 JavaBridge.war 文件,把它解开(提示:改名成 JavaBridge.jar 就可以用 WinRAR 解开了)。在解开后的 JavaBridge\WEB-INF\cgi 目录下,你会发现一个 java-x86-windows.dll 文件,在 JavaBridge\WEB-INF\lib 目录下,有一个 JavaBridge.jar 文件。把它们复制到 c:\php\ext 目录下(如果你的 PHP 5 是安装在 c:\php 目录下,并且扩展是在 c:\php\ext 目录下的话)。你可以将 java-x86-windows.dll 改名成 php_java.dll,原来 PECL 中的 php_java.dll 和 php_java.jar 删掉就可以了,它们没有用。如果你觉得这个过程很麻烦,直接从本站下载 php_java.zip 并解压缩到 c:\php\ext 目录下就可以了,这个包里已经包含了这两个文件,并且已经改了名。
  然后编辑 php.ini 文件,在其中加入:
extension=php_java.dll

[Java]
java.class.path = "C:\php\ext\JavaBridge.jar"
java.java_home = "C:\Program Files\Java\jdk1.5.0_06"
java.library.path = "c:\php\ext"  然后重新启动 IIS 后,在浏览器中打开上面的 test.php 测试页面,如果看到下面的内容:

则说明配置成功了!
  现在你就可以在 PHP 中直接创建 Java 对象,并且使用它来编写程序了。例如(下面的程序来自 PHP 手册 CVII. PHP / Java Integration 一节):
<?php
header("content-type:text/html; charset=utf-8");
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
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>';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter->format(new Java('java.util.Date'));
?>  运行它你就会看到下面的结果:
Java version=1.5.0_06
Java vendor=Sun Microsystems Inc.
OS=Windows 2003 5.2 on x86
[o(String):"星期一, 五月 08, 2006 at 11:45:13 下午 中国标准时间"]

补充:  目前,该方法还不能在 PHP 5.2 上工作。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-353060-1-1.html 上篇帖子: 为php配置java环境 下篇帖子: php之cookie会话控制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表