Java中每个用户的单个应用程序实例

时间:2015-03-17 15:37:43

标签: java swing

我在Swing中创建了应用程序,我想只运行它的一个实例。我写了这样的话:

private static final int PORT = 12345;
{
    try {
        new ServerSocket(PORT, 10, InetAddress.getLocalHost());
    } catch (UnknownHostException e) {
        // shouldn't happen for localhost
    } catch (IOException e) {
        // port taken, so app is already running
        System.out.println("Application already exist");
        System.exit(0);
    }
}

它适用但仅适用于所有系统。因此,如果一个用户运行它,另一个用户不能同时使用它。所以我希望每个用户只能运行这个应用程序的一个实例。你知道我怎么做到的?

1 个答案:

答案 0 :(得分:3)

对于每个用户,将端口号存储为首选项。首选项将与用户帐户相关联。用户第一次运行应用程序时,首选项将不存在 - 随机生成端口号并将其存储给该用户。每次之后,当用户启动应用程序时,请阅读其端口首选项。

由于每个用户都使用不同的端口,因此每个用户实例不会相互干扰 - 但每个用户将仅限于一个实例。