PHP调用JAVA方法
2015-06-26 16:57
615 查看
1. PHP调用JAVA方法
1.1. 软件需求
下载php-java-bridge_6.2.1_documentation.zip,下载地址为: http://php-java-bridge.sourceforge.net/pjb/download.php
JavaBridge.jar:将上面的php-java-bridge_6.2.1_documentation.zip解压得到一个JavaBridge.war,将JavaBridge.war重命名为JavaBridge.jar,再次用WinRAR对JavaBridge.jar解压到JavaBridge目录,在JavaBridge\WEB-INF\LIB里面可以找到JavaBridge.jar和Lucene.jar。
JDK:JavaBridge是由Java语言实现的,所以必须安装JDK实现对jar文件执行提供支持。并配好环境变量。
1.2. 运行JavaBridge
双击运行JavaBridge\WEB-INF\LIB里的JavaBridge.jar,应该会弹出一个可以选择的对话框,如果没有弹出,是因为没有安装JDK或者文件关联错误,解决方法是安装JDK或者运行“start javaw -jar JavaBridge.jar”(内容保存到*.bat里面,而*.bat与JavaBridge.jar同一个目录)替代双击。弹出对话框后不用选择,直接点击“确定”即可。正确如下:
![](http://images0.cnblogs.com/blog2015/375677/201506/261652551895133.png)
1.3. 测试JavaBridge
在www目录下新建test.php,内容如下:
找到JavaBridge\WEB-INF\LIB里的JavaBridge.jar,解压JavaBridge.jar可以在JavaBridge\META-INF里面找到java目录,完全拷贝java目录与test.php同目录,然后运行:http://localhost/test.php,会有如下内容输出,说明JavaBridge安装成功了
![](http://images0.cnblogs.com/blog2015/375677/201506/261653057528540.png)
1.4. 在PHP中调用自定义的JAVA 类
先建一个测试类Test.java:
编写完类,将Test.java编译生成class文件,将Test.class拷贝到C:\Program Files\Java\jre7\classes目录下,因为版本号的不同,jre7文件夹名字可能不同。安装JDK时候默认没有C:\Program Files\Java\jre7\classes,需要手动建立。
修改Test.php的内容为:
再访问http://localhost/test.php,页面就输出下面内容了:
![](http://images0.cnblogs.com/blog2015/375677/201506/261653184086873.png)
就这个东东搞了一天才搞出来,哎 网上找了好多方法都行不通,这样每次都要把class移到jre目录里不方便,加上java_require("Test.jar"); 引用jar包却报这个错: Warning: java_require() not supported anymore. Please use <a href="http://php-java-bridge.sourceforge.net/pjb/webapp.php>tomcat or jee hot deployment</a> instead in D:\wamp\www\java\Java.inc on line 1656 不知道怎么搞才能直接引用jar包,有会的同学还请指教哦!
1.1. 软件需求
下载php-java-bridge_6.2.1_documentation.zip,下载地址为: http://php-java-bridge.sourceforge.net/pjb/download.php
JavaBridge.jar:将上面的php-java-bridge_6.2.1_documentation.zip解压得到一个JavaBridge.war,将JavaBridge.war重命名为JavaBridge.jar,再次用WinRAR对JavaBridge.jar解压到JavaBridge目录,在JavaBridge\WEB-INF\LIB里面可以找到JavaBridge.jar和Lucene.jar。
JDK:JavaBridge是由Java语言实现的,所以必须安装JDK实现对jar文件执行提供支持。并配好环境变量。
1.2. 运行JavaBridge
双击运行JavaBridge\WEB-INF\LIB里的JavaBridge.jar,应该会弹出一个可以选择的对话框,如果没有弹出,是因为没有安装JDK或者文件关联错误,解决方法是安装JDK或者运行“start javaw -jar JavaBridge.jar”(内容保存到*.bat里面,而*.bat与JavaBridge.jar同一个目录)替代双击。弹出对话框后不用选择,直接点击“确定”即可。正确如下:
![](http://images0.cnblogs.com/blog2015/375677/201506/261652551895133.png)
1.3. 测试JavaBridge
在www目录下新建test.php,内容如下:
require_once("java/Java.inc"); $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>';
找到JavaBridge\WEB-INF\LIB里的JavaBridge.jar,解压JavaBridge.jar可以在JavaBridge\META-INF里面找到java目录,完全拷贝java目录与test.php同目录,然后运行:http://localhost/test.php,会有如下内容输出,说明JavaBridge安装成功了
![](http://images0.cnblogs.com/blog2015/375677/201506/261653057528540.png)
1.4. 在PHP中调用自定义的JAVA 类
先建一个测试类Test.java:
public class Test { private String name = ""; // setter and getter public void setName(String name) { this.name = name; } public String getName() { return this.name; } //加法 public float add(float num1, float num2) { return num1 + num2; } }
编写完类,将Test.java编译生成class文件,将Test.class拷贝到C:\Program Files\Java\jre7\classes目录下,因为版本号的不同,jre7文件夹名字可能不同。安装JDK时候默认没有C:\Program Files\Java\jre7\classes,需要手动建立。
修改Test.php的内容为:
//自定义类测试 require_once("java/Java.inc"); $test = new Java("Test"); //产生实例 $test->setName("哈哈,PHP调用JAVA的方法!"); //后面的调用就跟在php中调用类方法一样 print "调用类Test的getName方法,返回值为:".$test->getName()."<br>"; print "调用Test的add方法,返回值为:".$test->add(11.2, 15.7);
再访问http://localhost/test.php,页面就输出下面内容了:
![](http://images0.cnblogs.com/blog2015/375677/201506/261653184086873.png)
就这个东东搞了一天才搞出来,哎 网上找了好多方法都行不通,这样每次都要把class移到jre目录里不方便,加上java_require("Test.jar"); 引用jar包却报这个错: Warning: java_require() not supported anymore. Please use <a href="http://php-java-bridge.sourceforge.net/pjb/webapp.php>tomcat or jee hot deployment</a> instead in D:\wamp\www\java\Java.inc on line 1656 不知道怎么搞才能直接引用jar包,有会的同学还请指教哦!
相关文章推荐
- 使用ExitProcess()结束本进程,TerminateProcess()结束进程
- PHP实现事件机制实例分析
- php 快速排序
- php使用MySQL保存session会话的方法
- PHP快速读取CSV大文件
- php面向对象魔术方法
- ThinkPHP中的或,且结合查询方法
- PHP与安卓和水果对接上传处理
- php加载外部文件类的3.5个方法
- php -- 判断文件是否存在
- [php] Thinkphp控制器继承
- PHP参考代码1
- php使用workerman自定义协议
- thinkphp对数据库操作有哪些内置函数
- PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1
- phpcms分页使用
- NTP配置实践
- Yii2-设置和获取、删除Cookies空值分析
- thinkphp中模版中的单标签,必须严格遵守w3c标准,在最后加上/
- 配置php5.6的运行环境