获取相同 Java 应用程序的实例,如果它已经是 运行

Get instance of same Java application if it is already running

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

Java 应用程序在不同的进程上工作。

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

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

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

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