[英]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.