admin管理员组文章数量:1794759
在php中调用java的方法
跨平台,跨语言的项目现在已经屡见不鲜,今天就说一说之前做过项目中,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
版权声明:本文标题:在php中调用java的方法 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686934263a119852.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论