在php中调用java的方法

来源:互联网 发布:git for windows 64 编辑:程序博客网 时间:2024/05/22 17:33

跨平台,跨语言的项目现在已经屡见不鲜,今天就说一说之前做过项目中,php调用java的方法:

无论是在linux远程服务器上,还是在windows下,最简单有效的方法,应该属于javabridge.jar。将java函数封装成jar包,php通过Javabridge.jar就可以进行调用。

一、在windows下的使用方法:

(1)将JavaBridge.jar放置在php路径下的ext文件夹当中,在使用之前,手动双击启动,选择SERVE_HTTP:8080.
(2)找到对应的java.inc文件。我将此文件放置在了php的文件路径下。
(3)将所需要引用的java工程封装成为jar包,放置在php文件路径下。
(4)使用:
<?php
#use for php to ask java
require_once("Java.inc"); //必须包含的配置文件
java_require("bwreader.jar"); //引用所需要使用的jar包,新版本的javaBridge中没有java_require这个功能,对于新版本怎么解决这个问题我也就没有研究
$test = new Java("bw.test"); //产生实例
$result =  $test->read($ar[0],$ar[1],$ar[2]); //使用java中的方法
?>

二、在linux下使用javabridge.jar
这个过程相对于windows下相对复杂:
1.在linux服务器上安装Javabridge:
(1)下载php-java-bridge.tar.gz压缩文件。我下的是5.5.4.1版本
(2)进入php-java-bridge.tar.gz所在的目录,执行phpize :/user/local/php/bin/phpize (有时候可能路径不同,总之找到phpize就好)
(3)编译:./config --with-java=$JAVA_HOME --with-php-config=/user/local/php/bin/php-config
(4)安装:make,make install
2.在php中配置javabridge:
(1)编辑php.ini文件:vim /user/local/apache2/conf/php.ini
(2)添加如下内容:
include_path = "/home/pcsong/software/webserver/javabridge/java"
extension = java.so
[java]
java.java_home="/usr/local/jdk1.8.0_77"
java.java="/usr/local/jdk1.8.0_77/jre/bin/java"
java.log_file="/var/log/php-java-bridge.log"
java.classpath="/home/pcsong/software/php/lib/php/extensions/no-debug-zts-20131226/JavaBridge.jar"
java.libpath="/home/pcsong/software/php/lib/php/extensions/no-debug-zts-20131226/;/usr/local/jdk1.8.0_77/jre/bin/"
3.验证:
重启apache,访问phpinfo页面,如果过有Java模块,就说明安装成功了
4.使用javabridge:
进入到Javabridge所在目录下,如果端口被占用,则需要修改Java.inc中的配置文件中监听端口。
java -jar JavaBridge.jar SERVLET_LOCAL:8081&

三、将工程封装成jar包:
一般的工程直接使用eclipse的export功能就可以。但是当要封装的java工程中调用了其他的jar包时,需要进一步处理:
有一种比较简单的方法就是:
将外部jar包解压缩,获取所有的class文件,然后与Java工程的class一起封装成为新的jar包。比如您的class包存放路径为 d:/com/demo (demo是个目录,下面含有子文件夹及class文件)
具体操作如下:
1、打开dos窗口,进入demo目录
cd d:/com/demo
2、执行 jar cvf demo.jar * 回车
3、在demo目录下面你会发现demo.jar




0 0
原创粉丝点击