background image

    

public

 

static

 void main(String[] args)

    

{

        

System.out.println("php java bridge test"); 

    

}

    

public

 String getHi(){

        

return

 "hi, every sudt linux member";

    

}

}
代码如下

:

 
javac Hello.java
java Hello
jar cvf hello.jar Hello.

class

将我们的

Hello.

class

打包成一个

jar 包以后,然后我们便可以在 PHP 中通过实例化一个 Java

的类来直接调用

getHi()方法了.

代码如下

:

 

ini_set

('display_errors', 1);

java_require('/data/test/hello.jar');

$hello

 = 

new

 Java('Hello');

$hi

 = 

$hello

->getHi();

echo

 

$hi

;

$php_hi

 = (string) 

$hi

;

var_dump(

$php_hi

);

运行结果

:

代码如下

:

 
[o(String):"hi, every sudt linux member"]
string(27) "hi, every sudt linux member"
要注意的一点小问题

:

  

1. java 里面的

public

 String getHi() 不能省略

public

,要不然默认的

getHi()方法是

private

的,这样在

PHP 里面是无法调用的。

  

2. 在 PHP 里调用了 java 的类以后,返回结果是 java 的 o(variable),最好做一下强制类型

转换,转换成

PHP 的变量类型来进行使用。

  

3. 我们在 java_require()的时候,最好使用绝对路径,这样就不用非得把要调用的 jar 包

放到我们在

php.ini 里配置的 libpath 里了。

  

4. 在

new

 Java()的时候,类名的首字母一定要大些,否则会报错,java 会找不到这个类

的。