php调用java类

云青
2021-06-21 / 0 评论 / 91 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年07月01日,已超过106天没有更新,若内容或图片失效,请留言反馈。

参考:
https://blog.csdn.net/qq_35921925/article/details/108110519
http://www.piaoyi.org/php/php-java-bridge-jar-class.html

一、centos下 PHP 调用 jar包

1.准备工作
1.1、php环境【php7.2】,并且将php.ini中的allow_url_include改为On
1.2、安装java环境

yum install java

2.下载 JavaBridge.jar(快捷下载)
JavaBridge.jar和Java.inc
下载地址: http://php-java-bridge.sourceforge.net/pjb/download.php
988993892c39e40f3a29de6dae176a4.png

  1. 打一个jar包,将打包好的jar包以及JavaBridge.jar放到ext目录里面
cp Hello.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/lib/ext
cp JavaBridge.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/lib/ext
cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/lib/ext
  1. 启动JavaBridge.jar
java -jar JavaBridge.jar SERVLET:8080 3 JavaBridge.log
  1. 新建一个php站点,把Java.inc放到根目录,新建index.php,index.php内容如下
<?php
header( 'Content-Type: text/html; charset=UTF-8' );

define("JAVA_DEBUG", true); //调试设置
define("JAVA_HOSTS", "127.0.0.1:8080"); //设置javabridge监听端口
/*0: Log nothing, not even fatal errors.
  1: Log fatal system errors such as "out of memory error".
  2: Log java exceptions.*/
define("JAVA_LOG_LEVEL", 2); //java.log_level: 0-6

require_once "Java.inc"; //php调用java的接口,与该脚本位于同一目录
java_set_file_encoding("UTF-8"); //设置JAVA编码。

$ob = new Java("Hello"); //实例

try{    
    $res = $ob->h('1333');
    echo $res;
} catch(Exception $e) {
    var_dump($e);
}

// 输出 1333

【一些注意事项】:

关于PHP-Java-Bridge的各种函数使用:

1、高版本的java_require不再使用,也无法使用,由于放到java虚拟机下面,则不需要再手动引入包文件。

2、java_value()用于获取值,而且必须使用该函数获取值。

(特别注意:如果该值需要存入数据库,那么必须使用该java_value函数,不然会报错,或者无法存入数据库)

3、java_inspect()对实例化或者方法进行print_r类似的输出。

(注:请不要直接使用var_dump这样的输出方法输出java的类、方法、变量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))

4、实例化使用 $test = new Java("Test")的方式,如果实例化的方法中存在参数,可以这样new Java("Test","pram")

提醒:

1、务必确保对java.inc的引用,确保引用正确

2、务必确保对jar包放在能引用的地方,比如java虚拟机jre下面

3、在PHP中调用Java使用PHP的的写法即可

0

评论 (0)

取消
Title - Artist
0:00