如何从PHP调用自定义java方法?

时间:2012-04-18 06:38:26

标签: php php-java-bridge

我是PHP和Java的新手。目前我正在研究一个在PHP代码中调用java类及其方法的项目。我正在为此创建一个概念证明。问题是我无法连接我在java中创建的自定义类。更多可以说我不知道​​该怎么做。我使用java.inc和javabridge.jar文件连接到系统类,但无法连接到简单的类。 我遵循的步骤是:

创建了一个名为clsForPHP的java包,它有一个方法sum(),它接受2个参数并返回整数值。 (这是使用MyEclipse IDE创建的) 现在我试图从PHP调用此函数。我已将包含该包的jar文件复制到PHP项目中。 (Eclipse- Helios是IDE) $ d = new java(" clsForPHP.class");

请帮忙!!我搜索了很多,但无法找到合适的解决方案。我认为这个包应该添加到java.inc文件中,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

首先在Unix框中安装Tomcat6和Java。很可能你的Tomcat将在8080端口上。现在从http://php-java-bridge.sourceforge.net/pjb/下载JavaBridge.war解压缩它。然后从WEB-INF / lib文件夹中复制JavaBridge.jar,php-servlet.jar和php-script.jar,在Tomcat的lib文件夹中。然后在您的Tomcat6 webapps文件夹中复制JavaBridge.war并重新启动tomcat6服务,该服务将在您的webapps中自动部署JavaBridge文件夹

现在尝试浏览http://localhost:8080/JavaBridge/。如果您的工作比安装PHP / Java Bridge。第一部分结束了。

现在在你的apache中创建测试页面,如下所示

<?php
      require_once("http://localhost:8080/JavaBridge/java/Java.inc");
      echo java("java.lang.System")->getProperties();
?>

然后运行它。如果它有效,那么你可以开始处理你的工作。如果它不起作用那么你的php.ini文件有问题。尝试在php.ini中打开allow_url_once =。

现在只需将您的java jar文件复制到tomcat / webapps / JavaBridge / WEB-INF / lib /文件夹中 并且总是在您希望java工作的页面中放置以下行

require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$yourObj = Javav("your java class");
$yourObj->yourMethod();
$yourObj->setProperty("xxx");

希望这可以帮助你。

如果你还有任何问题,请回来。

是的,它会抛出错误,因为你必须没有复制你的java编译文件可能是你的PHP / Java Bridge中的jar文件。

您可以按照以下两种方式进行操作

  1. 如果您已定义CATALINA_HOME,请复制 $ CATALINA_HOME / web应用/ JavaBridge的/ WEB-INF / lib中
  2. 如果您尚未定义CATALINA_HOME,请复制 的/ var / lib中/ tomcat6中/ web应用/ web应用/ JavaBridge的/ WEB-INF / lib中
  3. 我告诉它的路径假定你已经安装了tomcat6,可能是你的tomcat webapps文件夹可能处于不同的路径。