加入收藏 | 设为首页 | 会员中心 | 我要投稿 漯河站长网 (https://www.0395zz.cn/)- 云服务器、混合云存储、网络、内容创作、云渲染!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php调用自己java程序的方法详解

发布时间:2022-07-15 12:43:20 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php调用自己java程序的方法,较为详细的分析了php基于第三方jar包调用java程序以及使用dll动态链接库文件扩展进行java调用两种方法,需要的朋友可以参考下。 本文实例讲述了php调用自己的java程序实现方法,分享给大家供大家参考,具体如下
  这篇文章主要介绍了php调用自己java程序的方法,较为详细的分析了php基于第三方jar包调用java程序以及使用dll动态链接库文件扩展进行java调用两种方法,需要的朋友可以参考下。
 
  本文实例讲述了php调用自己的java程序实现方法,分享给大家供大家参考,具体如下:
 
  最开始要装jdk这个就不用说了,我装的是java ee 5+jdk
 
  1.把下载的php-java-bridge_5.2.2_j2ee.zip解压出来,里面有个JavaBridge.war 直接用winrar打开,到WEB-INF/lib/JavaBridge.jar 把这个jar包拷到 你的php目录的ext/下。
 
  2.打开war包,里面有个java的文件夹,把他全部拷到你的PHP项目下,如/demo/java
 
  3.目前的版本是VMBridge了,要php调用java类,要先启动JavaBridge,命令行下调用java –jar JavaBridge.jar或者双击JavaBridge.jar,在弹出的窗口中选择监听端口8080
 
  为了以后启动方便,我在ext/下新建了一个bat文件内容如下:
 
  @echo off
 
  start javaw -jar JavaBridge.jar
 
  保存后,双击启动 会有一个提示框选择vmbridge port 默认8080,直接点ok就行了
 
  4.在/demo/下新建test.php内容如下:
 
  <?php
  require_once("java/Java.inc");
  header("content-type:text/html; charset=utf-8″);
  // get instance of Java class java.lang.System in PHP
  $system = new Java('java.lang.System');
  $s = new Java("java.lang.String", "php-java-bridge config…<br><br>");
  echo $s;
  // demonstrate property access
  print 'Java version='.$system->getProperty('java.version').' <br>';
  print 'Java vendor=' .$system->getProperty('java.vendor').' <br>';
  print 'OS='.$system->getProperty('os.name').' '.
  $system->getProperty('os.version').' on '.
  $system->getProperty('os.arch').' <br>';
  // java.util.Date example
  $formatter = new Java('java.text.SimpleDateFormat',
  "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
  print $formatter->format(new Java('java.util.Date'));
  ?>
  5.启动apache,在浏览器中查看 http://localhost/demo/test.php
 
  会看到如下信息:
 
  php-java-bridge config…
 
  Java version=1.6.0_10
 
  Java vendor=Sun Microsystems Inc.
 
  OS=Windows Vista 6.0 on x86
 
  星期日, 十一月 23, 2008 at 4:31:49 下午 中国标淮时间
 
  自定义JAR:
 
  package ttt;
  public class phptest{
   /**
   * A sample of a class that can work with PHP
   * NB: The whole class must be public to work,
   * and of course the methods you wish to call
   * directly.
   *
   * Also note that from PHP the main method
   * will not be called
   */
   public String foo;
   /**
   * Takes a string and returns the result
   * or a msg saying your string was empty
   */
   public String test(String str) {
    if(str.equals("")) {
     str = "Your string was empty. ";
    }
    return str;
   }
   /**
   * whatisfoo() simply returns the value of the variable foo.
   */
   public String whatisfoo() {
    return "foo is " + foo;
   }
   /**
   * This is called if phptest is run from the command line with
   * something like
   * java phptest
   * or
   * java phptest hello there
   */
   public static void main(String args[]) {
    phptest p = new phptest();
    if(args.length == 0) {
     String arg = "";
     System.out.println(p.test(arg));
    }else{
     for (int i = 0; i < args.length; i++) {
      String arg = args[i];
      System.out.println(p.test(arg));
     }
    }
   }
  }
  生成为JAR,拷贝到D盘下。
 
  /demo/index2.php
 
  <?
  require_once("java/Java.inc");
  java_require("D://1.jar");
  $myj = new Java("ttt.phptest");
  echo "Test Results are <b>" . $myj->test("Hello World") . "</b>";
  $myj->foo = "A String Value";
  echo "You have set foo to <b>" . $myj->foo . "</b><br>n";
  echo "My java method reports: <b>" . $myj->whatisfoo() . "</b><br>n";
  ?> 

(编辑:漯河站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读