Impedir ejecutar más de una vez la misma aplicación

4188 vistas

Un truco podrÃa ser usar un ServerSocket del paquete java.net. Podemos lanzar este socket (sobre un puerto determinado) en la ejecución del main. Si se produce una excepción es que ya hay una instancia de la aplicación en marcha.

Veamos un ejemplo:



java
  1.   private static int PORT = 12345;
  2.   public static void main(String[] args) {
  3.       try {
  4.         new ServerSocket(PORT);
  5.         System.out.println("Instancia única del programa");
  6.       }catch(Exception e){
  7.         System.out.println("Ya hay una instancia activa");
  8.         System.exit(0);
  9.       }
  10. }



La dificultad estará en determinar un puerto libre que no use otra aplicación.