2

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

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

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

4

1 回答 1

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 文件夹中。然后将 JavaBridge.war 复制到您的 Tomcat6 webapps 文件夹中并重新启动您的 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=on。

现在只需将您的 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/webapps/JavaBridge/WEB-INF/lib
  2. 如果你还没有定义你的 CATALINA_HOME 然后复制 /var/lib/tomcat6/webapps/webapps/JavaBridge/WEB-INF/lib

我告诉它的路径假设您已经安装了 tomcat6,可能是您的 tomcat webapps 文件夹可能在不同的路径中。

于 2012-04-20T21:28:25.653 回答