从网站上的PHP脚本运行Java类文件

2022-08-30 11:10:33

我有一个网站,并希望能够允许用户从网站在服务器上运行Java文件。

我希望用户单击一个按钮,该按钮将在服务器上运行Java文件,并且Java程序打印到标准输出的任何内容都将打印在网站上供用户查看。

如何做到这一点(从PHP调用Java程序,并将标准从Java文件实时反馈回PHP网站)?

更新:

感谢您有关如何从PHP运行Java程序的答案。然而,我也希望能够,因为Java程序正在打印到stdout,它将在执行时打印出大量文本,能够在网页上打印出来,以便用户可以看到Java程序执行的阶段。

这怎么能做到,它是否需要任何额外的AJAX或JavaScript或类似的东西?


答案 1

PHP函数是要走的路,但你应该非常小心你允许执行的内容。换句话说,不要依赖用户输入,因为它可能会损害整个服务器。exec()

使用exec调用Java应用程序启动器,您可以从PHP执行任何Java应用程序,例如

<?php exec("java -jar file.jar arguments", $output); ?>

答案 2

既然你提到了实时,我建议你设置一个PHP到Java Bridge。在每个请求中初始化 JVM 会占用大量资源。

PHP/Java Bridge

PHP/Java Bridge 是基于 XML 的流式网络协议的实现,可用于将本机脚本引擎(例如 PHP、Scheme 或 Python)与 Java 或 ECMA 335 虚拟机连接起来。它比通过 SOAP 的本地 RPC 快 50 倍,在 Web 服务器端需要的资源更少。它比通过 Java Native Interface 进行直接通信更快、更可靠,并且不需要额外的组件即可从 PHP 调用 Java 过程或从 Java 调用 PHP 过程。


推荐