Hasta ahora he usado mi aplicación como un producto independiente. Entonces, cuando el usuario presionó el botón "Parar", llamé al System.exit(0);
y estuvo bien.¿Cómo puedo cerrar mi software de forma segura?
Ahora mi aplicación será llamada (de forma programática) desde otro programa. Entonces, me temo que System.exit(0);
matará no solo mi proceso sino también el software externo que inició mi programa.
Entonces, ¿cuál es la forma correcta de cerrar mi aplicación si se recibe una solicitud correspondiente de un software externo? Mi aplicación es una aplicación GUI. Por lo tanto, quiero cerrar la ventana, pero también quiero cerrar todos los procesos realizados por mi programa.
añadido:
Para ser más específicos, que quiere cerrar todas las discusiones iniciadas por mi programa. Mi programa no inicia ningún proceso de sistema operativo ni ningún otro programa.
@Roman: por * "procesos realizados por mi programa" * quiere decir todos los hilos que su programa Java está ejecutando o generó su programa, por ejemplo, otros ejecutables (Un * x procesos de shell, .exe, otro Programa Java ejecutándose en su VM, lo que sea) – SyntaxT3rr0r
@WizardOfOdds, me refiero a "todos los hilos que mi programa Java está ejecutando". – Roman
¿Cómo se invoca su programa? ¿Algún método lo llama un programa Java que ya se está ejecutando, por lo que los dos se convierten en un solo programa? ¿O es el otro programa que realiza una llamada al sistema para iniciar una nueva máquina virtual de Java con su programa? –