ecshop的php通过JavaBridge调用java的class
2013-05-24 23:39 来源:www.chinab4c.com 作者:ecshop专家
ecshop的php通过JavaBridge调用java的class这个功能,前期在ecshop里面肯定是用不到的。但是当你的ecshop流量以及负载非常大,甚至连php都完成不了的工作,但是有又有这个需求,这个时候,就必须通过ecshop的php通过JavaBridge调用java的class,来实现php对java接口了。以下我们将结合php调用java的例子,一点点来教大家操作。
1:下载JavaBridge.jar
2:把他解压到D:\xampp\htdocs\a\e\273
3:
首先运行JavaBridge.jar启动WEB服务器接口,在JavaBridge.jar所在目录运行命令:java -jar JavaBridge.jar SERVLET_LOCAL:8080。其中java如不在环境变量PATH中请使用绝对路径。(windows平台如果关联了jar文件到javaw可以直接双击JavaBridge.jar,选择SERVLET_LOCAL:8080然后单击确定;Linux平台可以在命令前使用nohup使用程序能持续运行;8080是常用端口,可以设置为其它端口)。
4:编写以下代码
define("JAVA_HOSTS", "127.0.0.1:8080"); //设置javabridge监听端口,如果开启javabridge.jar设置的端口不是8080,可通过此语句更改
require_once("META-INF/java/Java.inc"); //php调用java的接口,路径问题需要注意
$here=realpath(dirname($_SERVER["SCRIPT_FILENAME"]));
java_set_library_path($here.PATH_SEPARATOR .'.'); //设置java开发包(class或jar文件)路径,多个路径就用PATH_SEPARATOR分隔,保证跨平的支持。
java_set_file_encoding("GBK"); //设置JAVA编码。没试过其它的编码,也没深入研究如何能用其它的编码。
//前面是配置环境,下面开始真正的调用:
$system = new Java("java.lang.System");//初始化JAVA下的类,主要操作就是创建Java类的实例,Java类的第一个参数是JAVA开发的类的名字包含包路径,路径表示按JAVA里导入包的格式。如果JAVA下的类需要使用构造函数,可以在使用第二个参数。
print "Java version=".$system->getProperty("java.version")." /n";
//print "Java vendor=".$system->getProperty("java.vendor")." /n/n";
//print "OS=".$system->getProperty("os.name")." ". $system->getProperty("os.version")." on ".$system->getProperty("os.arch")." /n";
java_require("ta.jar"); //引用包含的jar包
$test = new Java("com.phpjava.ta"); //产生实例
$test->setName("哈哈,PHP调用JAVA的方法!"); //后面的调用就跟在php中调用类方法一样
echo "调用类Test的getName方法,返回值为:".$test->getName()."<br>";
echo "调用Test的add方法,返回值为:".$test->add(11.2, 15.7);
5:编写以下java
package com.phpjava;
public class ta {
private String name = "";
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public float add(float num1, float num2)
{
return num1 + num2;
}
}
6:编写完类,将ta.java编译生成class文件,通过JavaBridge来调用我们需要打成jar包,在cmd下执行:jar cf ta.jar com.*命令打包生成Test.jar包【注意包路径】。将生成的jar包拷贝到我们JavaBridge目录下这里即phpjava目录。接下来我们就可以在PHP中调用了,编写test.php文件放入phpjava目录
来源:http://www.chinab4c.com
最近更新
常用插件
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...