zoukankan      html  css  js  c++  java
  • 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:javaSetupjre8libext下,看看能不能实例化成功

    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: est eport est est.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]);

  • 相关阅读:
    OSVERSIONINFOEX structure
    VS系列开发工具发展概述
    VS2008与QT4.6集成
    windows nt service 框架
    Rair
    如何在进程之间共享内核对象
    GOOGLE
    如何获取错误消息说明使用 FormatMessage API
    EnableDebugPriv;
    汇编语言资料
  • 原文地址:https://www.cnblogs.com/xiaobiaomei/p/7676639.html
Copyright © 2011-2022 走看看