Fino ad ora ho utilizzato la mia applicazione come prodotto indipendente. Quindi, quando l'utente ha premuto il tasto "Stop" ho chiamato System.exit(0);
e andava bene.Come posso chiudere il mio software in modo sicuro?
Ora la mia applicazione verrà chiamata (in modo programmatico) da un altro programma. Quindi, temo che lo System.exit(0);
uccida non solo il mio processo ma anche il software esterno che ha avviato il mio programma.
Quindi, qual è il modo corretto di arrestare la mia applicazione se viene ricevuta una richiesta corrispondente da un software esterno? La mia applicazione è un'applicazione GUI. Quindi, voglio chiudere la finestra ma voglio anche chiudere tutti i processi eseguiti dal mio programma.
aggiunto:
Per essere più precisi, voglio chiudere tutte le discussioni iniziate da mio programma. Il mio programma non avvia alcun processo del sistema operativo o qualsiasi altro programma.
@Roman: da * "processi eseguiti dal mio programma" * intendi tutti i thread del programma Java in esecuzione o il tuo programma ha generato, ad esempio, altri eseguibili (processi shell Un * x, .exe, altro Programma Java in esecuzione nella loro VM, qualunque cosa)? – SyntaxT3rr0r
@WizardOfOdds, intendo "tutti i thread il mio programma Java è in esecuzione". – Roman
Come viene richiamato il tuo programma? Un certo metodo viene chiamato da un programma Java già in esecuzione, quindi i due diventano un unico programma? Oppure l'altro programma sta effettuando una chiamata di sistema per avviare una nuova VM Java con il tuo programma? –