我希望我的程序,一个Java可执行文件.jar,只运行一次.我制作了一个程序,但现在我希望用户不能打开多个实例....感谢您的时间......
我检查了服务器/客户端解决方案和锁定文件,但我对它们了解不多,我还试图让它们在NetBeans中运行,没有运气......
您可以使用套接字 - ServerSocket只能侦听尚未使用的端口.第一次启动在端口上成功创建了一个ServerSocket实例 - 当该程序正在运行时,不能在该端口上成功创建其他ServerSocket.
import java.io.IOException;
import java.net.ServerSocket;
public class OneInstance {
private static ServerSocket SERVER_SOCKET;
public static void main(String[] args) {
try {
SERVER_SOCKET = new ServerSocket(1334);
System.out.println("OK to continue running.");
System.out.println("Press any key to exit.");
System.in.read();
} catch (IOException x) {
System.out.println("Another instance already running... exit.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用锁定文件解决方案.在启动应用程序时,请检查特定文件.如果它不存在,请创建它并正常启动应用程序.如果确实存在,请退出该应用程序.您需要确保在应用程序关闭时删除文件(可能使用FileLock).
| 归档时间: |
|
| 查看次数: |
4168 次 |
| 最近记录: |