import java.net.*; public class InstanceControl extends Thread { public void run() { try{ Socket sock = new Socket("127.0.0.1",22222); //创建socket,连接22222端口 } catch (Exception e) {} try{ ServerSocket server = new ServerSocket(22222);//创建socket,在22222端口监听 server.accept(); //等待连接 server.close(); //有连接到来,也就是说有新的实例 System.exit(0); //这个实例退出 }catch (Exception e) { e.PRintStackTrace(); } } }
下面这个Java程序的程序入口是没有实例控制功能的:
public class ProgramMain { public static void main(String argv[]) { mainFrame frame = new mainFrame(); } }
现在想加入实例控制,只需要添加两行代码,添加后代码如下所示:
public class ProgramMain { public static void main(String argv[]) { InstanceControl ic = new InstanceControl(); ic.start(); mainFrame frame = new mainFrame(); } }