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]);

  • 相关阅读:
    ubuntu下文件安装与卸载
    webkit中的JavaScriptCore部分
    ubuntu 显示文件夹中的隐藏文件
    C语言中的fscanf函数
    test
    Use SandCastle to generate help document automatically.
    XElement Getting OuterXML and InnerXML
    XUACompatible meta 用法
    Adobe Dreamweaver CS5.5 中文版 下载 注册码
    The Difference Between jQuery’s .bind(), .live(), and .delegate()
  • 原文地址:https://www.cnblogs.com/xiaobiaomei/p/7676639.html
Copyright © 2011-2022 走看看