gpt4 book ai didi

java - 通知单独的 JVM 执行任务

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:32 27 4
gpt4 key购买 nike

所以我正在制作一个程序,一次只会运行一个实例,并且我是通过使用这个 solution 来实现的

但是现在我想这样做,如果用户尝试启动另一个实例,它将消耗该尝试并通知当前实例显示其 gui。

目前我正在考虑通过使用一个文件来做到这一点。在启动第二个实例时,将创建一个名为 show.stage 的文件。当另一个实例检测到该文件时,它将显示其图形用户界面并删除该文件。

我知道这行得通,但我想知道是否有更优雅的方法来做到这一点。

我能否设置一个环境标志,让另一个实例可以检查或通过套接字监听器通知它,尽管其他人似乎不鼓励这样做。我觉得创建文件将是最简单和最可靠的方式,但我愿意接受任何建议

此程序将在普通 Windows 上运行。

最佳答案

如果您不想使用锁定文件(我认为这是一个非常好的解决方案),您可以使用套接字。

让您的应用程序创建一个套接字服务器并在本地主机的某个端口上进行监听。如果它无法收听,则意味着其他人已经在收听该端口 - 很可能是您应用程序的另一个实例。您甚至可以连接到该端口并发送消息以通知主实例试图生成第二个实例。

需要注意的是,如果另一个应用程序合法使用该端口,您的应用程序将永远无法运行 - 但我发现这不太可能发生。

关于java - 通知单独的 JVM 执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51802481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com