一个多月没有写新博客的小王同学,前段时间实现了用PHP以javaBridge方式调用java,特记录于此,以备后续使用。
Ⅰ、本文以windows server 2012 R2 center+PHP5.6.40+Apache2.4.37+MySql5.0.11+Tomcat7.0.39+JDK1.6环境为例。
Ⅱ、软件需求
- 下载php-java-bridge_6.2.1_documentation.zip,下载地址为: http://php-java-bridge.sourceforge.net/pjb/download.php
-
去http://php-java-bridge.sourceforge.net/pjb/download.php下载 JavaBridge.jar,Java.inc两个文件即可(不用下载JavaBridge.war去tomcat解压)
- JDK:JavaBridge是由Java语言实现的,所以必须安装JDK实现对jar文件执行提供支持。并配好环境变量。
Ⅲ、双击javaBridge,可看到如下界面:
SERVLET_LOCAL:8080,圈起来,考试要考。
Ⅳ、测试JavaBridge是否安装成功的测试代码示例:
<?php
header("Content-type: text/html; charset=utf-8");
echo("你好");
//define("JAVA_DEBUG", true); //调试用
define("JAVA_HOSTS", "127.0.0.1:8080"); //设置javabridge监听端口,如果开启javabridge.jar设置的端口不是8080,可通过此语句更改
require_once("java/Java.inc"); //php初始化
$system = new Java('java.lang.System');
$s = new Java("java.lang.String", "php-java-bridge config...<br><br>");
echo $s;
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>';
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java('java.util.Date')).' <br>'.' <br>';
?>
define("JAVA_HOSTS", "127.0.0.1:8080");此处的8080即为上图中JavaBridge开放接口,此处端口务必于JavaBridge开放端口保持一致。
若JavaBridge安装成功,运行上述代码会出现如下界面:
忽略图中的Notice。。。。
Ⅴ、问题记录
1、tomcat杀掉进程后无法重启的情况,建议重启服务器以解决此问题。
2、对Java缓存机制了解甚少,感觉甚是神(gui)奇(yi)。
3、每次修改配置文件都要在任务管理器中杀掉java虚拟机,配置完后重新启动。