如何检查Javaprocess是否仍在运行?

时间:2012-08-01 22:21:58

标签: java

我正在为Serversoftware Bukkit开发一个应该重启它的插件。所以我添加了主函数,它检查正确的参数然后启动Bukkit。但是在它启动Bukkit之前,它应该等待Bukkit在我重新启动之前关闭。我知道我可以添加超时但我希望有更好的方法。那么有人知道怎么做吗?

2 个答案:

答案 0 :(得分:0)

一种方法是使用System.getProperty("os.name");检查操作系统并运行该特定平台的ad hoc命令(例如:LinuxWindows)。

答案 1 :(得分:0)

当你启动多个java进程时,它们似乎都具有相同的标识符,这似乎是你的问题。 “区分”过程是你的问题,而不是杀死它们。

因此,您可以自己以编程方式创建流程,从而能够记下用于流程的PID。然后杀死它将非常简单: http://blog.igorminar.com/2007/03/how-java-application-can-discover-its.html

另一个想法是使用JPS获取有关所有java进程的信息。这里讨论一个简单的sudo算法: http://bluepedia.blogspot.com/2008/11/jps-differentiate-between-multiple-java.html

希望我可以提供一些帮助......