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

如何从PHP调用自定义java方法?,php,php-java-bridge,Php,Php Java Bridge,我对PHP和Java都是新手。目前,我正在从事一个在PHP代码中调用java类及其方法的项目。我正在为此创建一个概念证明。问题是我无法连接用java创建的自定义类。更多的话,可以说我不知道怎么做。我使用java.inc和javabridge.jar文件连接到系统类,但无法连接到简单类。 我采取的步骤是: 创建了一个名为CLSForHP的java包类,它有一个方法sum(),该方法接受2个参数并返回整数值。(这是使用MyEclipse IDE创建的) 现在我尝试从PHP调用这个函数。我已经将包含该

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

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


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

首先,在您的Unix设备中安装Tomcat6和java。很可能您的Tomcat将位于8080端口。现在从解压下载JavaBridge.war。然后从WEB-INF/lib文件夹复制Tomcat的lib文件夹中的JavaBridge.jar、php-servlet.jar和php-script.jar。然后将JavaBridge.war复制到您的Tomcat6 webapps文件夹中,并重新启动Tomcat6服务,该服务将自动在您的webapps中部署JavaBridge文件夹

现在尝试浏览。如果你开始工作,那么你的PHP/Java桥就不会安装了。第一部分结束了

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

<?php
      require_once("http://localhost:8080/JavaBridge/java/Java.inc");
      echo java("java.lang.System")->getProperties();
?>
希望这能帮到你

如果你还有什么问题就回来

是的,它会抛出错误,因为您一定没有复制java编译文件,可能是PHP/java桥中的jar文件

您可以通过以下两种方式进行操作

  • 如果您已经定义了您的CATALINA_主页,请复制 $CATALINA_HOME/webapps/JavaBridge/WEB-INF/lib
  • 如果您尚未定义您的CATALINA_主页,请复制 /var/lib/tomcat6/webapps/webapps/JavaBridge/WEB-INF/lib

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

    为什么不为您的java类打开一个Web服务,然后您应该能够以任何语言使用它们。请参阅:Pushpesh,该链接描述了标准java类。但是我想使用自定义java类。我能够连接到标准java类。如果我使用Zend Apache server,我需要做什么更改吗?我能够执行
    java(“java.lang.System”)->getProperties()成功。我已将其放置在本地phpProject文件夹中。然而,
    Javav(“myClass”)无法识别。它抛出“调用未定义的函数Javav()”。这是我的错误:我忘了通知我正在使用Win7作为操作系统的本地系统中设置它。这有什么区别吗?我在我的poc中使用这个javabridge,它只被一个项目(poc应用程序)使用。在继续执行我的指示之前,请在ur上安装ApachePC@Milind,我根据your的说明成功地安装了javabridge,但我的问题是,当它运行php文件时,它会在命令提示符(catalina_start.bat)中打印结果。我想在网页内打印结果。我如何解决这个问题?@Tharu。你能告诉我你被卡在哪一个台阶上吗
    
    require_once("http://localhost:8080/JavaBridge/java/Java.inc");
    $yourObj = Javav("your java class");
    $yourObj->yourMethod();
    $yourObj->setProperty("xxx");