java - 获取同一 Java 应用程序的实例(如果该应用程序已在运行)

标签 java singleton mutual-exclusion

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

最佳答案

Java 应用程序运行在不同的进程上。

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

你能做的就是找到一种进程间通信机制并使用它。 典型inter process communications使用文件或通用数据库。

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

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

关于java - 获取同一 Java 应用程序的实例(如果该应用程序已在运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38224415/

相关文章:

iphone - 在 Singleton 中设置 NSMutableDictionary 条目?

operating-system - 为什么在信号量操作期间必须禁用所有中断?

locking - 使 pthread_rwlock_wrlock 递归

java - 如何使用 Selenium 和 Java 从动态下拉列表中选择自动建议

java - 我的 MINA 消息有什么问题?遍历 NioSocketConnector 并失败,导致 MINA 停止

java - 在Java中将xml数据从一个xml解析为一个新的xml

ios - swift中静态函数和单例类的区别

design-patterns - 如何回答面试题: What is a singleton and how would you use one?

multithreading - 德克算法

java - Oracle 数据库测试策略