PHP 搭建JavaBridge环境
(大三上,最近在做一个小项目,项目设计是实现校内智能语音机器人,便捷在校生的生活,由于现在所学知识有限,加上目前能力不足,所以暂使用php语言搭建网页版。)
(框架搭建都很顺利,但在提取关键字这块遇到了难点,经老师提点,决定使用JAVA hanlp语言库处理关键字,这就出现了一个问题,怎样使用php调用Java类?查询资料,发现已经有封装好的连接模块Java Bridge供调用,下边就来介绍如何搭建和使用Java Bridge以及我在搭建时所遇到的坑。)
搭建所需前提:
-
php环境已搭建并测试成功(php环境搭建在这里我就不介绍了,本人使用的是WampServer);
-
JavaBridgeTemplate721.war
(下载地址:链接:https://pan.baidu.com/s/1U5Bseqi8KWFuHNFD491gvw 提取码:mlf9 )
-
坑点:JDK:1.8版本(JDK11没有ext文件夹,又找不到解决办法,无奈退回JDK1.8,总算是可以正常使用了)
开始搭建:
将下载好的.war包解压,放到WampServer的名为www的文件夹中:
依次打开JavaBridgeTemplate721 -> WEB-INF -> lib文件夹
解压lib文件夹中的JavaBridge.jar
保留解压后的文件Java.inc,其他的可以删除,没有影响,像这样(注:JavaBridge.log是搭建成功后使用产生的日志,解压后是没有这个文件夹的,请放心删除;start_javabridge.bat是我自己创建的启动文件,下边会详细说明):
可自行决定是否创建start_javabridge.bat,我创建它主要是因为它可以快速打开端口界面,并且可以通过它关闭8080端口服务,如果不创建它而直接双击JavaBridge.jar可能会在你不想使用的时候或者需要重启8080端口的时候无法关闭8080端口,如start_javabridge.bat创建内容:
文件都存好了之后,双击JavaBridge.jar运行,选择8080端口确定(PHP调用JAVA的前提,端口不打开会报错)
至此,环境就搭建好了
调用Java
自己写好的Java类需要打包成.jar包,然后放在JRE的lib的ext文件夹下,PHP才能够对其进行调用
<?php
header("content-type:text/html; charset=utf-8");
require_once("E:\Wampserver\wamp\www\JavaBridgeTemplate721\WEB-INF\lib\Java.inc");//引入
//Java.inc文件
$System =new java("Hello"); //调用Java类,Hello是我自己写的Java类
echo $System->h();
?>