初试JavaBridge
时间:2006-05-22 来源:一地风飞
一、安装
1、安装j2re,1.4.2以上版本
2、下载并解压php-java-bridge-3.0.8_j2ee
3、复制java-x86-windows.dll和JavaBridge.jar到extension_dir目录,
4、修改php.ini加载java-x86-windows.dll
extension = java-x86-windows.dll
5、配置php.ini的java段
[java]
java.java = c:/jdk1.5/jre/bin/java
java.java_home = c:/jdk1.5 #jdk主目录
java.log_level = 2
java.log_file = c:/jdk1.5/log.txt
java.classpath = c:/php/ext/JavaBridge.jar
#如果使用servlet,还有host等配置,
二、一些关键方法
new Java("CLASSNAME"): 引用并生成一个类实例,返回该实例
例:
$v = new Java("java.util.Vector");
$v->add($buf=new Java("java.lang.StringBuffer"));
$buf->append("100");
echo (int)($v->elementAt(0)->toString()) + 2;
new JavaClass("CLASSNAME"): 引用一个类,但不创建实例.
$Object = new JavaClass("java.lang.Object");
$obj = $Object->newInstance();
$Thread = new JavaClass("java.lang.Thread");
$Thread->sleep(10);
java_require("JAR1;JAR2"): 包含jar包,建议这些包放在ext/lib下
例:
java_require("kawa.jar"); //会在extendsion_dir下查找
java_require("
http://localhost/kawa.jar
");
java_values(JAVA_OBJECT): 获得java对象的值
$str = new java("java.lang.String", "hello");
echo $str; //out=> [o(String):"hello"]
echo (java_values($str));//out=> hello
//也可以使用强制转换,如:echo (String) $str 或 echo "$str";
JavaException: java异常
try {
new java("java.lang.String", null);
} catch(JavaException $ex) {
$trace = new java("java.io.ByteArrayOutputStream");
$ex->printStackTrace(new java("java.io.PrintStream", $trace));
print "java stack trace: $trace\n";
}
foreach(COLLECTION): 对 java.util.Collection 或 java.util.Map循环
例:
$conversion = new java("java.util.Properties");
$conversion->put("name", "tim wong");
$conversion->put("birthday", "19771020");
foreach ($conversion as $key=>$value)
echo "$key => $value\n";
也可以使用下标直接访问
$Array = new JavaClass("java.lang.reflect.Array");
$String = new JavaClass("java.lang.String");
$entries = $Array->newInstance($String, 3);
$entries[0] ="Jakob der Lügner, Jurek Becker 1937--1997";
$entries[1] ="Mutmassungen über Jakob, Uwe Johnson, 1934--1984";
$entries[2] ="Die Blechtrommel, Günter Grass, 1927--";
for ($i = 0; $i getLength($entries); $i++) {
echo "$i: " . $entries[$i] ."\n";
}
默认情况下,javabridge返回的字串编码是utf8,可以在php程序中使用
java_set_file_encoding("gb2312"); 来改变编码
相关阅读 更多 +