Rumah > pembangunan bahagian belakang > masalah PHP > php如何调用java方法

php如何调用java方法

藏色散人
Lepaskan: 2023-03-06 19:14:02
asal
4988 orang telah melayarinya

php调用java方法:首先下载“php-java-bridge_6.2.1_documentation.zip”并运行JavaBridge;然后在www目录下新建test.php;最后在PHP中调用自定义的JAVA类即可。

php如何调用java方法

推荐:《PHP视频教程》《java视频教程

1. PHP调用JAVA方法

1.1.  软件需求

  • 下载php-java-bridge_6.2.1_documentation.zip,下载地址为: http://php-java-bridge.sourceforge.net/pjb/download.php
  • JavaBridge.jar:将上面的php-java-bridge_6.2.1_documentation.zip解压得到一个JavaBridge.war,将JavaBridge.war重命名为JavaBridge.jar,再次用WinRAR对JavaBridge.jar解压到JavaBridge目录,在JavaBridge\WEB-INF\LIB里面可以找到JavaBridge.jar和Lucene.jar。
  • JDK:JavaBridge是由Java语言实现的,所以必须安装JDK实现对jar文件执行提供支持。并配好环境变量。

1.2.  运行JavaBridge

  • 双击运行JavaBridge\WEB-INF\LIB里的JavaBridge.jar,应该会弹出一个可以选择的对话框,如果没有弹出,是因为没有安装JDK或者文件关联错误,解决方法是安装JDK或者运行“start javaw -jar JavaBridge.jar”(内容保存到*.bat里面,而*.bat与JavaBridge.jar同一个目录)替代双击。弹出对话框后不用选择,直接点击“确定”即可。正确如下:

 

1.3.  测试JavaBridge

  • 在www目录下新建test.php,内容如下:
require_once("java/Java.inc");

$system = new Java('java.lang.System');

$s = new Java("java.lang.String", "php-java-bridge config...<br><br>");

echo $s;

print &#39;Java version=&#39;.$system->getProperty(&#39;java.version&#39;).&#39; <br>&#39;;

print &#39;Java vendor=&#39; .$system->getProperty(&#39;java.vendor&#39;).&#39; <br>&#39;;

print &#39;OS=&#39;.$system->getProperty(&#39;os.name&#39;).&#39; &#39;.

$system->getProperty(&#39;os.version&#39;).&#39; on &#39;.

$system->getProperty(&#39;os.arch&#39;).&#39; <br>&#39;;

$formatter = new Java(&#39;java.text.SimpleDateFormat&#39;,

"EEEE, MMMM dd, yyyy &#39;at&#39; h:mm:ss a zzzz");

print $formatter->format(new Java(&#39;java.util.Date&#39;)).&#39; <br>&#39;.&#39; <br>&#39;;
Salin selepas log masuk
  • 找到JavaBridge\WEB-INF\LIB里的JavaBridge.jar,解压JavaBridge.jar可以在JavaBridge\META-INF里面找到java目录,完全拷贝java目录与test.php同目录,然后运行:http://localhost/test.php,会有如下内容输出,说明JavaBridge安装成功了

1.4. 在PHP中调用自定义的JAVA 类

  • 先建一个测试类Test.java:
public class Test {

    private String name = "";

 

    // setter and getter

    public void setName(String name) {

       this.name = name;

    }

 

    public String getName() {

       return this.name;

    }

 

    //加法

    public float add(float num1, float num2) {

       return num1 + num2;

    }

}
Salin selepas log masuk
  • 编写完类,将Test.java编译生成class文件,将Test.class拷贝到C:\Program Files\Java\jre7\classes目录下,因为版本号的不同,jre7文件夹名字可能不同。安装JDK时候默认没有C:\Program Files\Java\jre7\classes,需要手动建立。
  • 修改Test.php的内容为:
//自定义类测试

require_once("java/Java.inc");

$test = new Java("Test"); //产生实例

$test->setName("哈哈,PHP调用JAVA的方法!"); //后面的调用就跟在php中调用类方法一样

print "调用类Test的getName方法,返回值为:".$test->getName()."<br>";

print "调用Test的add方法,返回值为:".$test->add(11.2, 15.7);
Salin selepas log masuk
  • 再访问http://localhost/test.php,页面就输出下面内容了:
  • 就这个东东搞了一天才搞出来,哎 网上找了好多方法都行不通,这样每次都要把class移到jre目录里不方便,加上java_require("Test.jar"); 引用jar包却报这个错: Warning: java_require() not supported anymore. Please use
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan