获取相同Java应用程序的实例(如果它已在运行)

时间:2016-07-06 12:47:39

标签: java singleton mutual-exclusion

是否可以检查Java应用程序是否已在运行,如果是,请获取它的实例? 假设我有一个罐子,它第一次点击它会打开一个框架,每次在那之后(直到它关闭),它会获得该框架并向其添加一个对象。这也需要在主应用程序没有close()方法的情况下工作,因此如果应用程序停止响应或者已经通过任务管理器关闭,应用程序将在重新打开时再次工作。

1 个答案:

答案 0 :(得分:1)

Java应用程序适用于不同的进程。

因此,在两个不同的流程(已经运行的应用程序和新流程)之间进行交互并不是那么容易。

您可以做的是找到一个进程间通信机制并使用它。 典型的inter process communications使用文件或公共数据库。

您可以存储执行java应用程序的当前主线程的ID。

如果新进程开始检查是否有正在运行的应用程序。 如果是,您可以使用相同(或新的)进程间通信系统来发送主进程应更新的信息。然后辅助进程自杀。