好的Java过程控制库
Java进程控制非常糟糕 – 主要是由于Java VM / JDK类(例如java.lang.Process)的支持不足。
我想知道,有没有可靠的开源库。
要求是:
- OSS
- 启动/停止进程
- 管理STDIN和STDOUT
- 跨平台(至少Linux,Windows,Solaris,HP和IBM按此顺序)
- (可选)可重启
- (理想的)成熟
Java Service Wrapper可能正是您所需要的。 它是跨平台的,可用于启动Windows服务,捕获IO,并且通常可以完全管理任何Java应用程序。 它重量很轻,设计精良。 Atlassian用它来包装他们的产品(Jira,Bamboo等),所以它经过了战斗测试。
Apache Commons Exec怎么样?
还有一个要求……跨平台支持杀死一个孤立的进程。 使用java.lang.Process
(和Apache Commons Exec),当Java应用程序执行硬停止(kill -9)时,无法终止外部进程。 我真的很想找到一个可以更好地处理问题的库。
一种解决方案可能是将PID存储在磁盘上的某些资源中,然后在重新启动Java应用程序时终止进程。 当然,这将取决于平台,所以很好的跨平台库会很棒。