0

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

4

2 回答 2

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

希望我能有所帮助..

于 2012-08-04T17:50:58.477 回答
0

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

于 2012-08-01T22:43:43.580 回答