保持java应用程序的单例实例

时间:2015-10-09 12:38:14

标签: java swing jframe single-instance

我有一个jar文件,在执行时显示JFrame。 我不想允许重复执行我的Jar文件。 每次创建框架之前,使用Java我想检查Jar是否已经在执行。如果我的应用程序我已经在屏幕上有一个实例,我想把它带到前面。

我该怎么做? 请建议我一个方法。

3 个答案:

答案 0 :(得分:3)

我有同样的情况。

我做的是我以file模式打开write,关闭应用程序时delete打开file

通过这样做,我得知我的程序正在运行。

每次打开应用程序时,我都会检查该文件是否存在,如果找到我的文件,它就会运行,然后我就会提醒他

"实例已在运行"。

即使有人试图删除该文件,也表示它已在另一个应用程序中打开。

答案 1 :(得分:3)

我也使用套接字,通过RMI。

应用程序是RMI主机/服务器,在端口上接受远程方法调用。

主要是在启动时尝试作为RMI客户端在该端口上获取RMI服务器。 是否有人通过命令行args进行远程调用(例如打开另一个文档)。然后退出。

作为被调用的服务器,远程方法使用窗口的toFront()将应用程序带到前面。

答案 2 :(得分:2)

JUnique完成第一部分 - 阻止同一程序的多个实例。让现有实例走到前面是另一项我不确定如何处理的任务。