我的网络项目存在问题。
以前当我的教授问我做在线判断应用程序时,我选择使用php而不是Java servlet来实现它,因为我认为java servlet非常复杂。
然后问题来了。对于在线判断,我必须在服务器上使用后端java程序来处理用户提交的代码。也就是说,每次用户提交内容时,php都会调用java虚拟机并调用java应用程序。但是,要调用java应用程序,我现在的方法是使用命令行 popen(“start java -jar \”$ FILE_ROOT / OnlineJudge.jar \“”,“r”);
这很好用,但考虑到加载java虚拟机,它实际上非常慢并且容易出错。所以我想知道PHP是否有更好的方法来调用服务器上的本地java程序。因为后来我发现我仍然需要从php调用更多java。
任何想法都会受到赞赏。感谢。
答案 0 :(得分:1)
你考虑过php-java bridge,这非常有用,它使用XML在php和java之间进行通信。
您需要启动一次JVM,桥接组件将有助于沟通。
答案 1 :(得分:1)
根据java应用程序的编写方式,将其转换为servlet可能不会太难。一旦它是一个servlet,在jetty或tomcat下运行它,然后让你的php通过CURL连接到它并从servlet中获取/获取数据。
Java servlet非常简单。如果您正在使用像Spring这样的外部框架,那么它会变得更加容易,但如果没有,您只需要扩展javax.servlet.http.HttpServlet,然后在web.xml中对其进行配置。
这有点像黑客,但不应该花太多时间来完成。
答案 2 :(得分:0)
另请参阅exec命令行执行。我做了很长时间的任务,直到深夜才用它来关闭我的电脑。