繁体   English   中英

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

[英]Single instance of application per user in Java

我在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);
    }
}

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM