2014-05-05 43 views
0

我想編寫一個小的管理工具,可以啓動,停止和監視連續運行或預計完成的其他Java非GUI程序?該工具將與後端程序在同一臺服務器上運行。我將有一個Web前端供管理員使用(可能與Jetty一起使用)。我很可能希望後端程序作爲自己獨立的進程運行。Java程序來監視其他Java程序

如果我想與這些程序進行通信,例如查詢某些詳細狀態,該怎麼辦?後端程序在蜱和蜱之間分解他們的計算工作,我可以檢查進來的命令。

+1

您是否考慮過使用[JMX](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CDUQFjAA&url=http%3A%2F %2Fdocs.oracle.com%2Fjavase%2F7%2Fdocs%2Ftechnotes%2Fguides%2Fmanagement%2Fagent.html&EI = rBlnU7D-I9CgugTN0oHIBQ&USG = AFQjCNFrVsZPXnKNJ1XpaLLO73PqT76H2A&SIG2 = -qTzG-3yEHnRbpSQsj9jNA&BVM = bv.65788261,d.c2E)或'jvisualvm'要用jdk1捆綁.8 – Parasu

+0

@Parasu是隻有jdk1.8或更高版本才支持這個? – Vishrant

+0

@Parasu也不能給java程序提供進程名稱,並使用一些unix或windows命令監視它是否應用程序仍然活着? – Vishrant

回答

4

JMX自Java 1.5以來一直是JRE的一部分,它可用於監視本地或遠程Java應用程序。 許多Java庫/應用程序(如tomcat,jetty等)通過註冊一些JMX服務來支持它。 如果您希望管理員使用Web前端,您可以嘗試jolokia,這是使用JSON over HTTP的遠程JMX。這是快速,簡單,多語種,並具有獨特的功能。