Java - Varias ejecuciones del programa relacionadas

 
Vista:
sin imagen de perfil

Varias ejecuciones del programa relacionadas

Publicado por Miguel angel (26 intervenciones) el 10/06/2008 16:31:52
Hola, he intentado resolver esto en Visual Basic y no lo conseguí, a ver si con Java me pueden ayudar a resolverlo. Tengo un programa que es un visor, y para ver cada imagen lo hacen llamando al programa y pasandole un argumento que indica la imagen que se debe abrir.

Ahora bien, para que esto funcione idóneamente, necesito controlar que el programa solo se abra una vez, con la imagen de la última llamada.

Lo estoy intentando controlar con una variable estática, pues si no me equivoco, mantiene su valor entre distintas llamadas, pero no hace lo que esperaba.

El código con el que lo voy probando es este:

private static Controlador instancia = null;
private static int cont = 0;

public static void main(String[] args) {
Controlador.getInstancia();
}

private static Controlador getInstancia(){
Controlador c;
cont ++;
if (instancia == null){
c= new Controlador(); ///args[0]);
JOptionPane.showMessageDialog(null, "Primera instancia: "+cont, "", JOptionPane.INFORMATION_MESSAGE);

}else{
JOptionPane.showMessageDialog(null, "Segunda instancia: "+cont, "", JOptionPane.INFORMATION_MESSAGE);
c= instancia;
}
return c;
}

public Controlador(){
instancia = this;
}

Mi intención es que al ejecutar el .jar por segunda vez (sin aceptar el de la primera ejecución, por lo que el proceso debería estar activo bloqueado) , debería aparecer el segundo mensaje. con un incremento del contador, pero siempre me aparece el primero.

Alguien podría decirme en que estoy equivocado, o me puede dar alguna idea?

Si alguien conoce algún otro modo de saber si mi apicación ya está abierta y fuese posible que se acceda a esa sin crear otra instancia del programa, le agradecería que me lo comentase

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder