最近想使用网页显示Lucene搜索的结果,网上说用Php和javabridge可以,但是,我使用javabridge里面的example或者自己写的类都不行。
apache2.2+php5+mysql
现在是可以调用java自己的类如java.lang.String,但是自己写的不行啊而且javabridge里面有一个例子是这样的:
<?php include_once ("java/Java.inc");java_autoload("lucene.jar");use java\lang\System as SYS;
use java\io as IO;
use java\util as Util;
use org\apache\lucene as Lucene;
try {
  echo "indexing ... ";
  /* create the index files in the tmp dir */
  $tmp = create_index_dir();
  $analyzer = new Lucene\analysis\standard\StandardAnalyzer();
  $writer = new Lucene\index\IndexWriter($tmp, $analyzer, true);
  $file = new IO\File(getcwd());
  $files = $file->listFiles();
  assert (!java_is_null($files));  foreach($files as $f) {
    $doc = new Lucene\document\Document();
    $doc->add(new Lucene\document\Field(
       "name", 
       $f->getName(), 
       Lucene\document\Field::type("Store")->YES, 
       Lucene\document\Field::type("Index")->UN_TOKENIZED));
    $writer->addDocument($doc);
  }
................
................
................
但是输出是这个
Warning: Unexpected character in input: '\' (ASCII=92) state=0 in C:\AppServ\www\test.php on line 5Parse error: syntax error, unexpected T_STRING, expecting T_AS or T_PAAMAYIM_NEKUDOTAYIM or ';' in C:\AppServ\www\test.php on line 5
貌似php没有use这个用法啊?
如果用java_require("lucene.jar");又说java_require什么不支持了
大家路过帮帮忙吧谢谢了

解决方案 »

  1.   

    您的 php 版本太低了,尚不支持命名空间
      

  2.   

    我后来升级到PHP6了还是不行啊
      

  3.   

    环境有配置好吗
    编写一个简单的php测试一下
    $str = new java("java.lang.String", "hello");
    echo $str; 
      

  4.   

    目前 php 的最高版本是 5.3.8,哪来的 6 ?
      

  5.   

    这里有6。
    http://www.appservnetwork.com/
      

  6.   

    自己写个helloworld打包成jar  放到JavaBridge/WEB-INF/lib/下面  重启下jdk然后在php里面 $helloworld=new Java("helloworld");  试试看我这没问题的
      

  7.   

    你是用dll实现的么?那样好像在新版javabridge不推荐啊
    我javabridge.log如下
    Dec 06 13:32:23 JavaBridge INFO : VM                  : 1.7.0_01@http://java.oracle.com/
    Dec 06 13:32:23 JavaBridge INFO : JavaBridge version             : 6.2.1    
    Dec 06 13:32:23 JavaBridge INFO : logFile             : JavaBridge.log
    Dec 06 13:32:23 JavaBridge INFO : default logLevel    : 3
    Dec 06 13:32:23 JavaBridge INFO : socket              : HTTP_LOCAL:8080
    Dec 06 13:32:23 JavaBridge INFO : java.ext.dirs       : C:\Program Files\Java\jre7\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
    Dec 06 13:32:23 JavaBridge INFO : php.java.bridge.base: C:\Documents and Settings\Administrator
    Dec 06 13:32:23 JavaBridge INFO : thread pool size    : 20
    Dec 06 13:32:23 JavaBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8080
    Dec 06 13:42:32 JavaBridge ERROR: An exception occured: java.lang.ClassNotFoundException: test.HelloWorld
    java.lang.ClassNotFoundException: test.HelloWorld
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at php.java.bridge.Util.classForName(Util.java:1518)
    at php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
    at php.java.bridge.Request.handleRequest(Request.java:458)
    at php.java.bridge.Request.handleRequests(Request.java:500)
    at php.java.bridge.JavaBridge.handleRequests(JavaBridge.java:150)
    at php.java.bridge.JavaBridgeRunner.doPut(JavaBridgeRunner.java:207)
    at php.java.bridge.http.HttpServer.service(HttpServer.java:289)
    at php.java.bridge.http.HttpServer$Runner.run(HttpServer.java:205)
    at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)