Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601014
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-05-22 11:52:41

一、安装
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("");

 

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 < $Array->getLength($entries); $i++) {
   echo "$i: " . $entries[$i] ."\n";
}

默认情况下,javabridge返回的字串编码是utf8,可以在php程序中使用

java_set_file_encoding("gb2312"); 来改变编码

阅读(3150) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~