当前位置: 首页 > 面试题库 >

如何从PHP 5使用Java

曾奇略
2023-03-14
问题内容

我看过很多有关使用PHP中的Java的教程,但它们似乎彼此冲突。他们中的许多人说将php.ini更改为使用dll文件,但是显然现在PHP
5中具有“内置”功能。但这需要Tomcat吗?我必须摆脱Apache才能运行它吗?http://php-java-
bridge.sourceforge.net/pjb/installation.php
表示将.war文件放入Tomcat的autodeploy目录中,但是我看不到任何名为“
autodeploy”的目录。有人会逐步解释如何使Java东西在具有PHP 5和Apache的Windows机器(我正在使用Windows 7)上运行吗?


问题答案:

您可能会从PHP
webapp中找到大量有关如何使用Java类的无用和过时的信息,这根本没有帮助。大约一年前,我遇到了类似的问题,我发现,足以在生产中使用的唯一成熟方法是PHP
/ Java
Bridge(您在Sourceforge上找到的一种方法)。它的工作原理比预期的要好,并且不需要Java知识(但是,如果您确实知道Java,则应考虑为此目的编写Web服务并在PHP端使用它)。

Bridge的文档不是很明显,但是请记住,您应该坚持使用它,而不要阅读其他描述不同方法的资源-请勿混淆,即不必安装任何PHP扩展名或smth-
所有这些都与从PHP调用Java的另一种(通常是过时且不受支持的)方式有关。

PHP / Java Bridge是一个网络协议,因此您在PHP端唯一需要做的就是确保在php.ini中启用了“ allow_url_include”

从Java方面,您必须将PHP / Java Bridge绑定到一个免费端口并监听连接。然后,您的PHP应用将能够对Bridge的代理文件执行
require_once”操作,该文件将在该端口上可用。就是这样,您可以使用该代理Bridge对象从PHP脚本中透明地实例化和调用Java类(它将在后台序列化并传输调用和结果)。

有两种方法可以启动网桥并将其绑定到某些本地端口。

1)复杂的一件事:安装Tomcat,使用网桥本身和您要使用的库创建一个war文件。这种方式在这里描述:

http://php-java-bridge.sourceforge.net/pjb/webapp.php

要将战争部署到Tomcat安装中,只需将战争放入Tomcat的webapp文件夹中并重新启动即可。

2)比较容易的一种:打包一个jar而不是war并运行它(它将使用嵌入式Web服务器,因此您不必安装Tomcat并部署任何东西)。要使用这种方式,请参考以下页面:

http://php-java-bridge.sourceforge.net/pjb/desktop-apps.php

两种方法都对您有效(不要在第二个选项中看到“桌面”一词,这种方法也可以在您的PHP webapp中正常使用)。

请参阅“示例”部分中的示例,以了解如何使用它(显而易见)。您也可以参考我的小型PHP客户端,该客户端使用PHP / Java
Bridge与Java中的Neo4J嵌入式数据库通信。但是,此示例可能会更复杂,并且打算将其部署到Tomcat,无论如何,您都可以了解如何实例化和使用它的类:

https://github.com/coffeesnake/neo4j-php-
wrapper



 类似资料:
  • Yos-social-php5 是 Yahoo! Social SDK 的 PHP5 开发包。

  • 问题内容: 我目前正在开发一个个人Node.js(>=8.0.0)项目,该项目要求我调用C子例程(以缩短执行时间)。我试图使用WebAssembly来执行此操作,因为我需要最终代码在浏览器中打开时才兼容。 我已经使用Emscripten将C代码编译为WebAssembly,但之后不知道如何进行。 在正确方向上的任何帮助都将非常有用。谢谢! 问题答案: 您可以构建没有JS胶水文件的.wasm文件(独

  • 问题内容: 我想使用IFileOperation从python代码复制文件- 它比python更快 您会看到一个不错的对话框 不阻止Python 在Windows 10上,Python 3.8- 似乎不存在。 如何使用来联系(不是不​​推荐使用的API)? 问题答案: 该问题使用comtypes.GUID作为唯一(非标准)依赖项。 看一下comtypes本身,它是纯python并使用ctypes(

  • 我需要在cmd上打印这个字符。其UNICODE编码为U+26C0。我尝试了这个:system.out.print(“”);但在跑步中我得到了“?”角色谢谢。

  • 问题内容: 我使用此建议执行了JavaScript,并且想从此脚本返回一个值。 问题答案: 您可以像这样返回值: Java: 蟒蛇:

  • 本文向大家介绍PHP5超级全局,包括了PHP5超级全局的使用技巧和注意事项,需要的朋友参考一下 示例 以下是PHP5 SuperGlobals $GLOBALS $_REQUEST $_GET $_POST $_FILES $_SERVER $_ENV $_COOKIE $_SESSION $GLOBALS:此SuperGlobal变量用于访问全局变量。 $_REQUEST:此SuperGloba