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 会找不到这个类
的。