Java - Una sola instancia de un programa a la vez

 
Vista:

Una sola instancia de un programa a la vez

Publicado por Alvaro (15 intervenciones) el 20/08/2003 00:45:31
Hola.
Hace mucho tiempo que tengo la misma duda y agradeceria una respuesta...
Como puedo asegurarme de que mi programa en java solo esté ejecutandose una vez en el pc.
Me explico.
Cuando se trata de Visual C/C++, yo puedo utilizar la API FindWindow para que el programa que esta siendo ejecutado busque si el mismo ya está corriendo, si es asi, puedo decirle que, dado que lo encontro, lo ponga en primer plano y esta instancia finalice.
Así puedo asegurarme que el programa solo esta ejecutandoce una vez, no importa cuantas veces le haga doble click desde el explorador de archivos.
En java, en cambio, no he podido lograrlo.
Lo he intentado a traves de ClassLoader y findLoadedClass, pero cuando ejecuto cada programa, al parecer, se crea una instancia de la maquina virtual por programa ejecutandoce, por lo que me es imposible saber si en una instancia esta cargada la clase desde otra instancia de la maquina virtual.
Alguien tiene alguna idea de como los programas como el Tomcat u otros de esa especie hacen para ser cargados solo una vez en memoria?
por su ayuda Gracias...
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

RE:Una sola instancia de un programa a la vez

Publicado por Oscar (661 intervenciones) el 20/08/2003 05:58:05
Si estas hablando de usar la misma JVM entonces puedes hacer un singleton.
Pero si son distintas JVM hay varias formas de hacer eso...
puedes crear un archivo que te sirva de candado. O bien puedes abrir un socket y antes de iniciar la aplicacion tratar de comunicarte con ese socket.. si no recibes respuesta entonces no se ha instanciado la aplicacion y se puede proceder., .....

http://forum.java.sun.com/thread.jsp?forum=4&thread=264307&start=0&range=15&hilite=false&q=
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar