Foros del Web » Programación para mayores de 30 ;) » Java »

¿Cómo saber si mi aplicacion se esta ejecutando?

Estas en el tema de ¿Cómo saber si mi aplicacion se esta ejecutando? en el foro de Java en Foros del Web. Saludos a todos. Mi problema es el siguiente: tengo una aplicación en java ya terminada pero no quiero que se ejecute 2 veces la misma ...
  #1 (permalink)  
Antiguo 07/12/2009, 21:53
Avatar de zaccarelliasbun  
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 15 años
Puntos: 1
¿Cómo saber si mi aplicacion se esta ejecutando?

Saludos a todos.

Mi problema es el siguiente: tengo una aplicación en java ya terminada pero no quiero que se ejecute 2 veces la misma aplicación es decir: hago doble click a mi aplicacion.jar se ejecuta el sistema y por debajo en un archivo de texto escribo un valor para reconocer si se esta ejecutando:

0 //cuando no se esta ejecutando
1 // cuando esta en ejecución

entonces la próxima vez que haga doble click a mi aplicacion.jar lee el archivo y ve que si tiene el numero 1 lanza un error diciendo "EL SISTEMA YA ESTA EN EJECUCIÓN", esto me funciona de maravilla, pero solo me funciono hasta cuando se me corto la luz y mi maquina se apago repentinamente entonces el archivo de texto quedo con el valor 1 y mi aplicación no puede ejecutarse hasta cuando le cambie al valor 0.

puedo saber de alguna manera en Java si mi aplicación se esta ejecutando algo así como Thread.currentThread o utilizando la clase SecurityManager, no se, no tengo idea, estuve investigando pero nada encontré al respecto, sera que me pueden ayudar con esto?

Saludos.
  #2 (permalink)  
Antiguo 08/12/2009, 15:24
Avatar de zaccarelliasbun  
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 15 años
Puntos: 1
Respuesta: ¿Cómo saber si mi aplicacion se esta ejecutando?

por favor alguien que me ayude con este problema?
  #3 (permalink)  
Antiguo 08/12/2009, 16:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Cómo saber si mi aplicacion se esta ejecutando?

Yo en vez de 0/1 escribo la fecha serializada y a través de un Thread la voy refrescando periodicamente. Si al arrancar la fecha está obsoleta en un intervalo menor al del refresco del Thread, es que tu programa termino bruscamente, así que puedes pensar que en realidad no se está ejecutando.
Esa es una de las opciones más habituales. Otra es abrir un socket en un puerto y escuchar por el. Si el socket esta ocupado y algo responde correctamente por el... quiere decir que hay otra instancia viva.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Última edición por GreenEyed; 09/12/2009 a las 02:34
  #4 (permalink)  
Antiguo 08/12/2009, 16:08
Avatar de zaccarelliasbun  
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 15 años
Puntos: 1
Respuesta: ¿Cómo saber si mi aplicacion se esta ejecutando?

gracias GreenEyed por tu respuesta, creo que me voy por el lado del socket, por que tengo poco tiempo para implementarlo y presentarlo mi sistema, gracias.
  #5 (permalink)  
Antiguo 09/12/2009, 02:36
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Cómo saber si mi aplicacion se esta ejecutando?

De nada, el problema del socket es que si algo lo tiene ya cogido, por algún motivo, entonces se complica la cosa.
Pero vamos, en una opción tienes que jugar con Threads y en la otra con sockets, así que ambas tienen sus ventajas y sus pegas.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.