在一次PHP项目开发中需要用到银行提供的接口工具包,一个.jar文件,进行验签操作。于是在网上搜索了有关资料,核心词就是:JavaBridge,网上搜索各种干扰信息乱七八糟的,有的缺东少西,有的过于冗余。这里整理一下简简单单就搞定。
话不多说直接上干货,如何快速实现在php中引入jar类包?
centos 系统直接使用命令:yum install java
测试是否安装成功:java -version
将JavaBrideg.jar放到/usr/local/JavaBrideg.jar,然后执行**打开JavaBridge命令**:
nohup>javaBridge.log java -jar /usr/local/JavaBridge.jar SERVLET:58080 2>&1 &
这时会生成一个javaBridge.log文件,打开获取到JAVA.EXT.DIRS路径,比如我这里是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/lib/ext
将想要php引入的jar包复制到该目录下,比如util.jar,那路径就是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/lib/ext/util.jar
之后重新打开JavaBridge,需要先杀死在启动一次
ps -aux | grep "java" 找到上面执行的java命令进程ID,然后 kill pro_id;
nohup>javaBridge.log java -jar /usr/local/JavaBridge.jar SERVLET:58080 2>&1 &
打开文件 vi /etc/rc.d/rc.local
在末尾加上命令:nohup>javaBridge.log java -jar /usr/local/JavaBridge.jar SERVLET:58080 2>&1 &
然后保存即可。
<?php
require("http://127.0.0.1:58080/JavaBrideg/java/Java.inc");
$java = new \Java('com.pay.api.util.PayUtil') //这里一定要写包的完整类名
$res = $java->makeSign($param,$pubkey); //makeSign 是jar包里封装的方法。
php7.4以上的版本如果引入jar包会出错,需要调整一些东西
如果有这方面的开发需要可以QQ联系我处理哦。