PHP-Java-bridge 的使用 java类转PHP

1.准备工作

文件介绍:
   1. php-java-bridge_7.2.1
   2. jdk-8u221-windows-x64 java运行环境必备 ,这里是sdk8 64位
   3. Jetbrains IntelliJ IDEA 2020.1 64位 最好的java编程工具,可用于后面的打包工作

下载链接:
   链接:https://pan.baidu.com/s/1aWAFaNKpQYlKFX2p1vW9GA
   提取码:onq2
   点击跳转

2.安装JDK(jdk-8u221-windows-x64)

a).下载后再Windows操作系统下直接双击运行。



b).更改安装路径,如不想更改可以直接一直下一步安装即可,这里的安装路径在后面的配置环境变量的时候要用



C).演示一下,我这边只有一个C盘,更改文件夹。



d).等待安装结束。



e).安装结束。



f).因为bridge也包括其他的java应用在运行的时候需要访问java的jdk,设置环境变量。

     我的电脑->右击->属性->高级系统设置->环境变量->系统环境变量->新建
     变量名称:JAVA_JDK    变量值:你的安装路径


g).编辑系统环境变量。

     新建变量值:% JAVA_JDK%\bin;% JAVA_JDK%\jre\bin;    一行新建不成功的话,直接分开新建。
     新建依次点击确定按钮关闭窗口即可。


g).验证是否安装成功。

     使用java -version打印java jdk 的版本,即可表示安装成功

3.Bridge(php-java-bridge_7.2.1)设置

a).解压后更改文件后缀。

     更改JavaBridge.war的后缀jar





b).解压后进入到文件夹内。





c).运行JavaBridge.jar。

     路径:JavaBridge/WEB-INF/lib 选择JavaBridge.jar运行



     双击JavaBridge.jar运行,出现弹窗后直接确定,这里选择本地服务器和监听的端口,如果一闪而过,那就是你的环境变量不对,重新配置jdk环境变量



d).验证是否成功。

     打开浏览器输入:http://127.0.0.1:8080/,这里的URL就是你在上一步选择的本地服务器和端口,出现此页面表明启动成功



e).查看配置。

     运行成功后,会在你当前双击的文件目录中出现一个log



     关注这个配置路径,此路径用于后续的java的jar扩展包存放,将需要的jar放到此路径下,在运行JavaBridge后即可进行文件开发内的编程引入


4.Jetbrains IntelliJ IDEA 安装以及破解和汉化,参考下载后的文件夹内,这里就不在重复了,也可参考https://www.bilibili.com/read/cv17050351/的博客。

5.Jetbrains IntelliJ IDEA 新建项目及打包

a).新建项目

     点击文件->New->Project







b).新建类

  在src下的com.company中油价新建,java类,我这里输入Test。要有Main函数,作为主类文件







c).打JAR包

  依次点击右上角的文件->项目结构,然后左侧选择Artifacts



  点击加号->JAR->From modules with ...









  在顶部的按钮中选择构建,然后点击构建项目



  选择一个需要构建的记录进行build



  在IDE的底部可以看到正在执行构建



  构建完成,在out文件夹中可以查看.jar包



c).使用JAR包

  在项目中创建lib包,并将jar包复制进来


  依次点击右上角的文件->项目结构,然后左侧选择








6.php-java-bridge使用

a).引入JAR包,重启php-java-bridge

  将我们生成的JAR包复制到第三大步的(e 中的log配置文件java.ext.dirs的目录下,win+r 输入cmd 然后使用命令netstat -ano |findstr "端口号"命令查看PID,然后在任务管理器右键结束任务。然后重新运行JavaBridge.jar。


b).PHP引入

将JavaBridge.jar解压,然后进入文件夹,将META-INF文件夹内的java,然后放到和PHP脚本能引入的位置,代码中是同级目录


<?php
ini_set("display_errors",1);
define ("JAVA_HOSTS", "127.0.0.1:8080"); //定义监听的端口,如多个Bridge启动,可通过变量进行切换
require_once("./java/Java.inc"); //引入java,注意目录层级,一定引用正确,才可以
$system = new Java('java.lang.System'); 

$s = new Java("java.lang.String", "php-java-bridge config...<br><br>");
echo $s;
print 'Java version='.$system->getProperty('java.version').' <br>';
print 'Java vendor=' .$system->getProperty('java.vendor').' <br>';
print 'OS='.$system->getProperty('os.name').' '.
$system->getProperty('os.version').' on '.
$system->getProperty('os.arch').' <br>';
$formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter->format(new Java('java.util.Date')).' <br>'.' <br>';

$UploadFile = new Java('com.company.uploadFile');//使用自己的jar包,这里的名称要和你的类文件的【package com.company;】一致
$res =  $UploadFile->hello();
var_dump(java_values($res));exit;//使用java_values函数将返回对象转为值类型

d).访问PHP脚本输出


每次jar发生变化,重新载入的时候,JavaBridge.jar必须要杀死重启,否则不会生效。

new自己的jar包的时候,路径名称一定要和自己的包名称一致,否则会引入失败



参考:https://blog.csdn.net/UsbFor/article/details/111569448
      https://www.bilibili.com/read/cv17050351/

posted @ 2022-07-12 16:50  青柚  阅读(1353)  评论(0编辑  收藏  举报