Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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桌面应用程序应该只在任何桌面上运行,如何实现这一点?_Java - Fatal编程技术网

Java桌面应用程序应该只在任何桌面上运行,如何实现这一点?

Java桌面应用程序应该只在任何桌面上运行,如何实现这一点?,java,Java,如果我有一个用Java编写的带有swing或applet的桌面应用程序,它安装在Windows或Unix的任何操作系统桌面上。 现在,如果任何用户第一次打开(比如双击windows桌面中的桌面快捷方式),那么它应该打开第一个窗口,但当用户第二次尝试打开相同的应用程序时,它应该填充相同的窗口,这意味着它不应该用其他窗口再次打开。 示例:就像Outlook在桌面上工作一样。 如何在不使用任何配置文件和DB配置的情况下使用纯核心java实现这一点?如果您希望第一个实例知道第二个实例,您必须使用文件系统

如果我有一个用Java编写的带有swing或applet的桌面应用程序,它安装在Windows或Unix的任何操作系统桌面上。 现在,如果任何用户第一次打开(比如双击windows桌面中的桌面快捷方式),那么它应该打开第一个窗口,但当用户第二次尝试打开相同的应用程序时,它应该填充相同的窗口,这意味着它不应该用其他窗口再次打开。 示例:就像Outlook在桌面上工作一样。
如何在不使用任何配置文件和DB配置的情况下使用纯核心java实现这一点?

如果您希望第一个实例知道第二个实例,您必须使用文件系统,并维护一个锁文件,或者使用一些IPC机制(可能通过绑定本地端口滥用网络堆栈?),您还需要进行IPC通信以促进这一点。不同的java实例在不同的JVM中运行,而Windows应用程序通过操作系统提供的机制(实例句柄)来完成该功能。

不需要任何外部配置吗?祝你好运我能马上想到的唯一方法是尝试将套接字绑定到特定的地址/端口…但接下来您需要能够指定哪一个。