Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java(jar)-如何每次打开相同的进程?_Java_Jar - Fatal编程技术网

java(jar)-如何每次打开相同的进程?

java(jar)-如何每次打开相同的进程?,java,jar,Java,Jar,如何每次打开相同的进程? 我有一个java程序, 我想创建一个jar文件(我知道如何创建jar文件), 它每次打开时都是同一个实例 我用了这个命令: setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); 因此,用户将无法关闭jar 现在,我不知道如何打开相同的线程/进程, 当用户再次双击jar时。 请帮忙。。 谢谢。您可以按如下方式更改代码: 启动时,应用程序尝试在本地主机上的专用端口上发送消息。如果不可能,应用程序将开始侦听本地

如何每次打开相同的进程?

我有一个java程序,
我想创建一个jar文件(我知道如何创建jar文件),
它每次打开时都是同一个实例

我用了这个命令:

setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);  
因此,用户将无法关闭jar

现在,我不知道如何打开相同的线程/进程,
当用户再次双击jar时。

请帮忙。。
谢谢。

您可以按如下方式更改代码:

启动时,应用程序尝试在本地主机上的专用端口上发送消息。如果不可能,应用程序将开始侦听本地主机上未使用的专用端口

这样,当您运行第一个实例时,该实例将绑定端口并侦听它;当您运行第二个实例时,这个实例并没有真正启动,它会在第一个实例上发送一条消息并退出

然后,接收消息的第一个实例必须只做一些事情,比如在窗口顶部传递可见的消息

void onMessageReceivedFromOtherInstance() {
    yourMainFrame.setVisible(true);
    yourMainFrame.toFront();
}

运行程序(包括运行JAR的JVM)总是创建一个新进程。“诀窍”是让新启动的程序确定是否已经有一个合适的进程在运行——如果已经有,告诉它自己显示出来。然后,新流程在不再需要时自行终止;我真的很希望(也怀疑)有一个图书馆已经处理好了细节。非常感谢你的帮助。请参阅,等等,了解想法的开始。(这需要某种形式的“IPC”来告诉现有的流程显示自己。)除了实现这种行为的挑战,你介意我问一下:你的最终目标是什么?这个要求来自哪里?谢谢你。我喜欢这个主意。我将尝试这个想法。