PHP调用java应用程序


PHP invoke java applications

我在关联web项目时遇到问题。

以前,当我的教授问我如何做在线判断应用程序时,我选择使用php而不是Javaservlet来实现它,因为我认为Javaservlet相当复杂。

然后问题来了。对于在线评委,我必须使用服务器上的后端java程序来处理用户提交的代码。也就是说,每次用户提交内容时,php都会调用java虚拟机并调用java应用程序。然而,要调用java应用程序,我现在自己的方法是使用命令行popen("start java-jar''"$FILE_ROOT/OnlineJudge.jar ''","r");

这很好,但考虑到加载java虚拟机,它实际上非常缓慢且容易出错。所以我想知道PHP是否有更好的方法来调用服务器上的本地java程序。因为后来我发现我仍然需要从php调用更多的java。

任何想法都将不胜感激。谢谢

您是否考虑过php-java桥接,这非常有用,它使用XML在php和java之间进行通信。

您需要启动JVM一次,桥接组件将帮助进行通信。

这里有一些例子,在这里你可以找到一个简单的例子来连接php和java

根据java应用程序的编写方式,将其转换为servlet可能不会太难。一旦它是一个servlet,就在jetty或tomcat下运行它,然后让php通过CURL连接到它,并从servlet中放入/获取数据。

Java servlet相当简单。如果您使用的是像Spring这样的外部框架,它会变得更容易,但如果不是,您只需要扩展javax.servlet.http.HttpServlet,然后在web.xml中配置它。

这有点像黑客,但不应该花太长时间来完成。

还可以查看命令行执行的exec。我用它来关闭我的电脑,在做了一项很长的任务直到深夜。