2011-06-24 13 views
6

He desarrollado una aplicación de consola Java que cuando se inicia, abre una ventana de la consola y permanece en primer plano, quiero iniciar esa aplicación en segundo plano.Ejecutar la aplicación de la consola Java como daemon (fondo)

Ahora i iniciar la aplicación de esta línea de comandos:

java -jar myapp.jar 

¿Hay una manera de lograr este comportamiento? ¿Es suficiente cambiar el parámetro de la línea de comando o necesito hacer algún cambio en mi código?

+0

su pregunta no está clara. ¿Desea ejecutar como un servicio de Windows? ¿O quieres una consola de windows? ¿o ambos? –

+1

¿En qué sistema operativo desea lograr esto? – Marcelo

+0

Estoy en Windows y como un servicio de Windows podría ser una gran solución. ¿Hay alguna forma de ejecutar una aplicación de consola Java como servicio de Windows? – aleroot

Respuesta

12

La respuesta depende del sistema operativo.

*nix: <your command> & 
Windows: (opens a new console): start <your command> 
Windows: (doesn't open a new console): start /b <your command> 
6

Si está haciendo esto en cualquier base de datos unix, puede agregar & al final, que engendrará un nuevo hilo y lo mantendrá ejecutándose en segundo plano.

java -jar myapp.jar & 
4

Si realmente desea que se ejecute en segundo plano, java -jar myapp.jar & hará el trabajo. De esa forma, aún morirá cuando se cierre el caparazón, pero puedes seguir usando tu caparazón.

Si realmente quieres que funcione como daemon, nohup java -jar myapp.jar & hará el trabajo. De esa forma, continuará viviendo cuando el caparazón se cierre.

Si desea que esto sea fiable, se puede preparar un guión de inicio o upstart job definition, o bien puede hacerlo a través de Vixie cron(8)@reboot especificador para que sea inicia en el arranque.

+0

Solo quiero señalar que esto sería para una máquina Unix o Linux y no para Windows. – Kalyan

3

Dado que está utilizando Windows, podría considerar Java Service Wrapper. Lo he usado en un proyecto en el pasado.

+3

Además, puede hacer "javaw" en lugar de "java", que ejecutará su programa sin una ventana de consola. Por lo general, se debe ejecutar un programa java basado en GUI. http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html – Jim

Cuestiones relacionadas