【问题标题】:Execute a method in a running jar by php通过 php 在正在运行的 jar 中执行方法
【发布时间】:2014-07-20 20:31:10
【问题描述】:

正如标题所说,有没有办法通过PHP执行一个jar的方法?还是我必须在 jar 中运行一个像 tomcat 这样的 web 主机,以便 PHP 脚本可以通过 REST 调用这个方法?

两者(PHP 和运行的 jar)都在同一台服务器上。

编辑: jar 已经在运行,那么有没有办法在运行时执行该 jar 的方法?

【问题讨论】:

  • 双向都有系统调用。如果没有更多信息,很难说出您想要达到的目标。
  • 在 PHP 中,您可以使用shell_exec。所以不,您不必在 jar 中运行(嵌入式)网络服务器。
  • 编辑了问题...

标签: java php


【解决方案1】:

你可以使用 php 的 exec() 函数。但要小心,这可能不安全。

无论如何,我认为你可以做类似的事情

<?php exec("java -jar bla.jar ..."); ?>

编辑:这是它的 php 参考页面:http://php.net/manual/en/function.exec.php

编辑 2:

如果应用程序已经在运行并且应该做某事,那么您可能希望使用某种带有 IPC 的服务器客户端架构。就像运行中的 jar 提供了一个套接字一样,您编写了一个由 php 执行的客户端,并通过套接字告诉服务器应用程序应该做什么。所以命令链是 php --> jclient --> jserver

【讨论】:

  • sry,编辑了问题,重点是 jar 已经在运行
  • 好吧,那你到底想做什么?如果应用程序已经在运行并且应该做某事,那么您可能希望使用某种带有 IPC 的服务器客户端架构。就像运行中的 jar 提供了一个套接字一样,您编写了一个由 php 执行的客户端,并通过套接字告诉服务器应用程序应该做什么。所以命令链是 php --> jclient --> jserver
  • 是的,我就是这么想的。相反,我会使用 REST 的套接字。好的,谢谢,用这些建议编辑你的答案,我接受它。
  • 好的,很高兴能帮到你。无论如何,我已经很久没有为 php 编写代码并且不知道 REST,但是从我所读到的内容来看,您似乎仍然需要某种通过 php 调用的 java 客户端,因为它看起来只连接到 php功能。
猜你喜欢
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2016-04-07
  • 1970-01-01
相关资源
最近更新 更多