科技与狠活 發表於 2022-7-12 16:50:00

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

<h3 id="1准备工作">1.准备工作</h3>
<p>文件介绍:<br>
   1. php-java-bridge_7.2.1<br>
   2. jdk-8u221-windows-x64 java运行环境必备 ,这里是sdk8 64位<br>
   3. Jetbrains IntelliJ IDEA 2020.1 64位 最好的java编程工具,可用于后面的打包工作</p>
<p>下载链接:<br>
   链接:https://pan.baidu.com/s/1aWAFaNKpQYlKFX2p1vW9GA<br>
   提取码:onq2<br>
   点击跳转</p>
<h3 id="2安装jdkjdk-8u221-windows-x64">2.安装JDK(jdk-8u221-windows-x64)</h3>
<p><strong>a).下载后再Windows操作系统下直接双击运行。</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712143852332-657719161.png"><br><br>
<strong>b).更改安装路径,如不想更改可以直接一直下一步安装即可,这里的安装路径在后面的配置环境变量的时候要用</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712145038798-647956660.png"><br><br>
<strong>C).演示一下,我这边只有一个C盘,更改文件夹。</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712145421533-1974683085.png"><br><br>
<strong>d).等待安装结束。</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712145516573-1114690444.png"><br><br>
<strong>e).安装结束。</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712145914153-1653887532.png"><br><br>
<strong>f).因为bridge也包括其他的java应用在运行的时候需要访问java的jdk,设置环境变量。</strong><br><br>
     我的电脑-&gt;右击-&gt;属性-&gt;高级系统设置-&gt;环境变量-&gt;系统环境变量-&gt;新建<br>
     变量名称:JAVA_JDK      变量值:你的安装路径<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712150727455-301602697.png"><br><br>
<strong>g).编辑系统环境变量。</strong><br><br>
    新建变量值:% JAVA_JDK%\bin;% JAVA_JDK%\jre\bin;    一行新建不成功的话,直接分开新建。<br>
     新建依次点击确定按钮关闭窗口即可。<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712151315007-1655100859.png"><br><br>
<strong>g).验证是否安装成功。</strong><br><br>
     使用<code>java -version</code>打印java jdk 的版本,即可表示安装成功<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712151527782-1059731306.png"><br></p>
<h3 id="3bridgephp-java-bridge_721设置">3.Bridge(php-java-bridge_7.2.1)设置</h3>
<p><strong>a).解压后更改文件后缀。</strong><br><br>
     更改JavaBridge.war的后缀jar <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152123016-875316249.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152252701-1199392334.png"><br><br>
<strong>b).解压后进入到文件夹内。</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152509706-1983863866.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152604638-94410014.png"><br><br>
<strong>c).运行JavaBridge.jar。</strong><br><br>
    路径:JavaBridge/WEB-INF/lib 选择JavaBridge.jar运行<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152916155-1131985135.png"><br><br>
    双击JavaBridge.jar运行,出现弹窗后直接确定,这里选择本地服务器和监听的端口,如果一闪而过,那就是你的环境变量不对,重新配置jdk环境变量<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712152952729-845519722.png"><br><br>
<strong>d).验证是否成功。</strong><br><br>
    打开浏览器输入:<code>http://127.0.0.1:8080/</code>,这里的URL就是你在上一步选择的本地服务器和端口,出现此页面表明启动成功<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712153210228-336149408.png"><br><br>
<strong>e).查看配置。</strong><br><br>
    运行成功后,会在你当前双击的文件目录中出现一个log<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712153535813-1973277016.png"><br><br>
    关注这个配置路径,此路径用于后续的java的jar扩展包存放,将需要的jar放到此路径下,在运行JavaBridge后即可进行文件开发内的编程引入<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712153722742-1377237139.png"><br></p>
<h3 id="4jetbrains-intellij-idea-安装以及破解和汉化参考下载后的文件夹内这里就不在重复了也可参考httpswwwbilibilicomreadcv17050351的博客">4.Jetbrains IntelliJ IDEA 安装以及破解和汉化,参考下载后的文件夹内,这里就不在重复了,也可参考https://www.bilibili.com/read/cv17050351/的博客。</h3>
<h3 id="5jetbrains-intellij-idea-新建项目及打包">5.Jetbrains IntelliJ IDEA 新建项目及打包</h3>
<p><strong>a).新建项目</strong><br><br>
     点击文件-&gt;New-&gt;Project <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712154516468-1761382551.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712154642328-1384476977.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712154744458-1006536333.png"><br><br>
<strong>b).新建类</strong><br><br>
  在src下的com.company中油价新建,java类,我这里输入Test。要有Main函数,作为主类文件<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712155543465-1694247865.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712155807521-1877171829.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712160616912-186600299.png"><br><br>
<strong>c).打JAR包</strong><br><br>
  依次点击右上角的文件-&gt;项目结构,然后左侧选择Artifacts<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712160223248-1452006259.png"><br><br>
  点击加号-&gt;JAR-&gt;From modules with ... <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712160342587-72331244.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712160733264-743041399.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712160905974-564867332.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712161003386-1418034919.png"><br><br>
  在顶部的按钮中选择构建,然后点击构建项目 <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712161519400-322424143.png"><br><br>
  选择一个需要构建的记录进行build <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712161600752-1374666838.png"><br><br>
  在IDE的底部可以看到正在执行构建 <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712161242499-207731872.png"><br><br>
  构建完成,在out文件夹中可以查看.jar包 <br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712161354145-1376101375.png"><br><br>
<strong>c).使用JAR包</strong><br><br>
  在项目中创建lib包,并将jar包复制进来<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712162144255-364704846.png"><br><br>
  依次点击右上角的文件-&gt;项目结构,然后左侧选择<br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712162045244-1329164943.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712162447450-337591297.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712162511051-1943546273.png"><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712162858172-796801102.png"><br></p>
<h3 id="6php-java-bridge使用">6.php-java-bridge使用</h3>
<p><strong>a).引入JAR包,重启php-java-bridge</strong><br><br>
  将我们生成的JAR包复制到第三大步的(e 中的log配置文件java.ext.dirs的目录下,win+r 输入cmd 然后使用命令<code>netstat -ano |findstr "端口号"</code>命令查看PID,然后在任务管理器右键结束任务。然后重新运行JavaBridge.jar。<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712163613979-948648041.png"><br><br>
<strong>b).PHP引入</strong><br><br>
将JavaBridge.jar解压,然后进入文件夹,将META-INF文件夹内的java,然后放到和PHP脚本能引入的位置,代码中是同级目录<br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712165850887-1231839699.png"><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712170010632-1154739058.png"><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712170319688-504590373.png"></p>
<pre><code>&lt;?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...&lt;br&gt;&lt;br&gt;");
echo $s;
print 'Java version='.$system-&gt;getProperty('java.version').' &lt;br&gt;';
print 'Java vendor=' .$system-&gt;getProperty('java.vendor').' &lt;br&gt;';
print 'OS='.$system-&gt;getProperty('os.name').' '.
$system-&gt;getProperty('os.version').' on '.
$system-&gt;getProperty('os.arch').' &lt;br&gt;';
$formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter-&gt;format(new Java('java.util.Date')).' &lt;br&gt;'.' &lt;br&gt;';

$UploadFile = new Java('com.company.uploadFile');//使用自己的jar包,这里的名称要和你的类文件的【package com.company;】一致
$res =$UploadFile-&gt;hello();
var_dump(java_values($res));exit;//使用java_values函数将返回对象转为值类型
</code></pre>
<p><strong>d).访问PHP脚本输出</strong><br><br>
<img src="https://img2022.cnblogs.com/blog/891378/202207/891378-20220712164336645-1327202752.png"><br></p>
<h3 id="每次jar发生变化重新载入的时候javabridgejar必须要杀死重启否则不会生效">每次jar发生变化,重新载入的时候,JavaBridge.jar必须要杀死重启,否则不会生效。</h3>
<h3 id="new自己的jar包的时候路径名称一定要和自己的包名称一致否则会引入失败">new自己的jar包的时候,路径名称一定要和自己的包名称一致,否则会引入失败</h3>
<br>
<br>
<p>参考:https://blog.csdn.net/UsbFor/article/details/111569448<br>
      https://www.bilibili.com/read/cv17050351/</p><br><br>
来源:https://www.cnblogs.com/ikai/p/16470694.html
頁: [1]
查看完整版本: PHP-Java-bridge 的使用 java类转PHP