首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何外部调用已经运行了一段时间的java程序

问如何外部调用已经运行了一段时间的java程序
EN

Stack Overflow用户
提问于 2014-03-03 15:15:31
回答 5查看 302关注 0票数 1

时间问题并不重要。但是我想知道如何对已经运行的java程序进行一些外部调用。

一个简单的例子:一个对文件进行一些处理的无限循环。

如果我有上面描述的这样一个程序,我如何才能编写一个shell/perl/python/etc脚本,允许我停止、启动、暂停java程序?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-03-03 15:19:58

这并不容易,但您可以使用RMI访问公开API以控制应用程序的控制类。

http://docs.oracle.com/javase/tutorial/rmi/index.html

票数 1
EN

Stack Overflow用户

发布于 2014-03-03 15:18:15

除非您的Java应用程序显式地允许外部访问它(例如从RMI、SOAP/REST-WebService、MQ、.)没有直接访问Java程序的方法。

最简单(但肯定不是最好的)解决方案是在两者之间使用文件系统。shell脚本创建一个由Java应用程序获取的文件。例如,创建一个文件暂停;如果应用程序看到该文件存在,它将删除它并暂停。停止应用程序就是简单地扼杀了这个过程。

票数 1
EN

Stack Overflow用户

发布于 2014-03-03 15:21:39

最简单的方法是编写一个脚本,在'start‘上启动程序,然后在'stop’上向Java进程发送一个SIGTERM信号。您的代码可以相应地处理该信号,以便清除关机。

如果只是一个开始/停止脚本场景,这就足够了。对于更先进的行为,其他答案提到了其他需要建立联系的备选方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22150392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档