php调java接口

Posted 小慧blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php调java接口相关的知识,希望对你有一定的参考价值。

1、下载二进制的 JavaBridge.jar包、java/Java.inc库文件,下载地址:http://php-java-bridge.sourceforge.net/pjb/download.php或者从http://php-java-bridge.sourceforge.net/pjb/index.php下载php-java-bridge_6.2.1的war包,将其中的将war包放在tomcat的应用程序目录webapps下,启动tomcat,会自动解析出一个同名的文件夹,其中的JavaBridge.jar和Java.inc是需要用到的。

2.下载jdk包(360软件管家)

3.在JavaBridge.jar所在目录运行命令(先cd到所在目录)

java -jar JavaBridge.jar SERVLET_LOCAL:8081 &

4.在命令行输入netstat -ano,发现已经开启了一个8081端口开始监听:

5.在web目录下放置 Java.inc文件,编写php测试代码 test.php,首先测试php调用java预定义的系统类有没有问题

<?php
define("JAVA_HOSTS", "127.0.0.1:8081");

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

$props = java("java.lang.System")->getProperties();

$array = java_values($props);
var_dump($array);

6,测试自定义java包

(1)编写test.java

 1 public class Test
 2 {
 3     private String name = "";
 4 
 5     //setter and getter
 6     public void setName(String name)
 7     {
 8         this.name = name;
 9     }
10 
11     public String getName()
12     {
13         return this.name;
14     }
15 
16     //加法
17     public float add(float num1, float num2)
18     {
19         return num1 + num2;
20     }
21 }

(2)在命令行输入javac test.java编译java文件

(3)打包成jar包,jar cvf classes.jar Foo.class Bar.class(将两个class文件存档到一个名为 \'classes.jar\' 的存档文件中)放入java安装目录F:\\javaSetup\\jre8\\lib\\ext下,看看能不能实例化成功

1 $test=new Java("Test");
2 $test->setName("哈哈,PHP调用JAVA的方法!");
3 echo "调用类Test的getName方法,返回值为:".$test->getName()."<br>";
4 echo "调用Test的add方法,返回值为:".$test->add(11.2, 15.7)."<br>";

7.提交数据给java的jar包

<?php
$jarPath = \'E:\\test\\report\\test\\test.jar\';
$data = json_encode([
\'cinema_status\' => 1,
\'business_date\' => \'2017-10-16\',
\'screen_code\' => \'00000008\',
\'film_code\' => \'001106152017\',
\'session_code\' => \'0000000027975\',
\'session_datetime\' => \'2017-10-16T14:30:00\',
\'operation\' => 1,
\'code\' => \'355170924665654\',
\'seat_code\' => \'0000000126\',
\'price\' => \'100.00\',
\'service\'=> \'10.00\',
\'online_sale\' => 1
]);
$send = "export LANG=\'en_US.UTF-8\';java -jar {$jarPath} {$data}";
echo $send.\'<br />\';
exec($send,$out,$status);
var_dump([$out,$status]);

以上是关于php调java接口的主要内容,如果未能解决你的问题,请参考以下文章

Java基础:封装

php调后台接口浏览器控制台看不到

php调接口

JAVA程序员写的接口没有PHP程序员体验好

php调接口批量同步本地文件到cos或者oss

java 代码片段