Hola a todos, hoy os voy a explicar como podemos tener una sola instancia de un programa en Java.
Es normal que si tenemos una aplicación queramos que no se ejecute varias veces para evitar problemas al tener varias instancias.
Se puede hacer de varias formas, en este manual, vamos a explicar como hacerlo con ServerSocket.
La idea es que la primera vez que se ejecuta se inicie un servicio que escuche en un puerto, entonces, cuando intentemos arrancar otro proyecto no nos dejará, ya que el puerto estaría ocupado por la primera instancia.
¿Como lo podemos hacer? Fácil.
Creamos un proyecto y me creo un JFrame.
public class Ventana extends javax.swing.JFrame { public Ventana() throws IOException { initComponents(); // El puerto puede ser el que queramos ServerSocket s = new ServerSocket(6200); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { try { new Ventana().setVisible(true); } catch (IOException ex) { Logger.getLogger(Ventana.class.getName()).log(Level.SEVERE, null, ex); } } }); } }
Veamos el resultado:
No pasa nada porque dé error.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta