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接口的更多相关文章
- php--php调java接口验签
<?php namespace Fmall_cloud\Model; use Think\Model; class DealJavaModel extends Model { /** * @ti ...
- [Java] 绕过证书验证调 HTTPS 接口时报 “SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”的解决办法
作者: zyl910 一.缘由 最近有在对接一个无证书的HTTPS接口时,总是收到"SSLHandshakeException: DHPublicKey does not comply to ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
- OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
转自: http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...
- Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6642463 在前面几篇文章中,我们详细介绍了A ...
- python 调 java(胶水就是胶水)
java门外汉用python调java, 一.安装java环境(linux) 1.首先要去下载好JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- java 接口的作用和好处
1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...
- java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
随机推荐
- CentOs - 使用ssh key远程登录
环境: 服务器端CentOs,本地OS X 服务器端: 1. 安装openssl使实现ssl协议 2. 将本地的pub key加入信任列表 本地: 1. 生成pub key 2. 配置ssh别名使登陆 ...
- 一个NPOI导出到excel文件的范例记录
'使用NPOI写入新创建的excel文件,导出文件: Private Sub Sub_WriteXls() Dim XlsBook As XSSFWorkbook Dim XlsSheet As XS ...
- apache配置修改
1.如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. 2. 3.如何使得apache监听在特定的端口 修改httpd.con ...
- Ping ip能ping通,ping计算机名ping不通,网络共享不能访问
名称 协议 端口 NetBIOS Name Service UDP 137 NetBIOS Datagram Service UDP 138 NetBIOS Session Service TCP 1 ...
- 10 python os&sys 模块
1.os模块 os模块提供了很多允许你的程序与操作系统直接交互的功能 os模块的主要功能:处理文件和目录,系统相关,执行命令,管理进程 检验给出的路径是否是一个文件:os.path.isfile() ...
- UI5-文档-4.1-Hello World!
如你所知,SAPUI5是关于HTML5的.让我们开始构建第一个仅使用HTML的“Hello World”. Preview 浏览器显示文本“Hello World” Coding 你可以在此查看和下载 ...
- visual studio 2017 报错 无法下载安装文件。请检查Internet连接,然后重试
vs下载完离线安装包在无网络环境下点击安装时出现无法下载安装文件.请检查Internet连接,然后重试 原因是证书没有导 解决方法 打开刚刚存放离线文件的路径,比如D:\vs2017offline,然 ...
- LVS原理以及配置
安装好ipvsadm后需要查看内核是否加载了ip_vs模块儿,如果没有需要手动执行ipvsadm进行加载: # ipvsadm # lsmod |grep ip_vs # rmmod ip_vs_rr ...
- scala -- 层级
层级 层级的顶端是Any 类,定义了如下方法 final def ==(that:Any):Boolean final def !=(that:Any):Boolean def equals(that ...
- iis配置asp.net常见验证失败问题解决方案
很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,俺忙活了一下午,做 了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙:) ...