日期:2014-05-17  浏览次数:20611 次

有关php调用lucene(JAVA)代码的问题
最近想使用网页显示Lucene搜索的结果,网上说用Php和javabridge可以,但是,我使用javabridge里面的example或者自己写的类都不行。
apache2.2+php5+mysql
现在是可以调用java自己的类如java.lang.String,但是自己写的不行啊。。。而且javabridge里面有一个例子是这样的:
PHP code
<?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 5

Parse 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什么不支持了。。。
大家路过帮帮忙吧。。。谢谢了

------解决方案--------------------
您的 php 版本太低了,尚不支持命名空间

------解决方案--------------------
环境有配置好吗。。。
编写一个简单的php测试一下。。。
$str = new java("java.lang.String", "hello");
echo $str;
------解决方案--------------------
这个问题好像我也遇到过,不过到现在也没解决
------解决方案--------------------
楼上是不是灌水啊,还弄个好像遇到过?我是真的遇到过,到现在还没解决的呢!
------解决方案--------------------
自己写个helloworld打包成jar 放到JavaBridge/WEB-INF/lib/下面 重启下jdk

然后在php里面 $helloworld=new Java("helloworld"); 试试看

我这没问题的