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(); } }