java(jar)-如何每次打开相同的进程?
如何每次打开相同的进程? 我有一个java程序,java(jar)-如何每次打开相同的进程?,java,jar,Java,Jar,如何每次打开相同的进程? 我有一个java程序, 我想创建一个jar文件(我知道如何创建jar文件), 它每次打开时都是同一个实例 我用了这个命令: setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); 因此,用户将无法关闭jar 现在,我不知道如何打开相同的线程/进程, 当用户再次双击jar时。 请帮忙。。 谢谢。您可以按如下方式更改代码: 启动时,应用程序尝试在本地主机上的专用端口上发送消息。如果不可能,应用程序将开始侦听本地
我想创建一个jar文件(我知道如何创建jar文件),
它每次打开时都是同一个实例 我用了这个命令:
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
因此,用户将无法关闭jar
现在,我不知道如何打开相同的线程/进程,当用户再次双击jar时。 请帮忙。。
谢谢。您可以按如下方式更改代码: 启动时,应用程序尝试在本地主机上的专用端口上发送消息。如果不可能,应用程序将开始侦听本地主机上未使用的专用端口 这样,当您运行第一个实例时,该实例将绑定端口并侦听它;当您运行第二个实例时,这个实例并没有真正启动,它会在第一个实例上发送一条消息并退出 然后,接收消息的第一个实例必须只做一些事情,比如在窗口顶部传递可见的消息
void onMessageReceivedFromOtherInstance() {
yourMainFrame.setVisible(true);
yourMainFrame.toFront();
}
运行程序(包括运行JAR的JVM)总是创建一个新进程。“诀窍”是让新启动的程序确定是否已经有一个合适的进程在运行——如果已经有,告诉它自己显示出来。然后,新流程在不再需要时自行终止;我真的很希望(也怀疑)有一个图书馆已经处理好了细节。非常感谢你的帮助。请参阅,等等,了解想法的开始。(这需要某种形式的“IPC”来告诉现有的流程显示自己。)除了实现这种行为的挑战,你介意我问一下:你的最终目标是什么?这个要求来自哪里?谢谢你。我喜欢这个主意。我将尝试这个想法。