好的Java过程控制库

Java进程控制非常糟糕 – 主要是由于Java VM / JDK类(例如java.lang.Process)的支持不足。

我想知道,有没有可靠的开源库。

要求是:

  1. OSS
  2. 启动/停止进程
  3. 管理STDIN和STDOUT
  4. 跨平台(至少Linux,Windows,Solaris,HP和IBM按此顺序)
  5. (可选)可重启
  6. (理想的)成熟

Java Service Wrapper可能正是您所需要的。 它是跨平台的,可用于启动Windows服务,捕获IO,并且通常可以完全管理任何Java应用程序。 它重量很轻,设计精良。 Atlassian用它来包装他们的产品(Jira,Bamboo等),所以它经过了战斗测试。

Apache Commons Exec怎么样?

还有一个要求……跨平台支持杀死一个孤立的进程。 使用java.lang.Process (和Apache Commons Exec),当Java应用程序执行硬停止(kill -9)时,无法终止外部进程。 我真的很想找到一个可以更好地处理问题的库。

一种解决方案可能是将PID存储在磁盘上的某些资源中,然后在重新启动Java应用程序时终止进程。 当然,这将取决于平台,所以很好的跨平台库会很棒。