Come uscire da un’app java dal programma

Qual è il modo migliore per uscire da un’applicazione Java con il codice?

È ansible utilizzare System.exit() per questo scopo.

Secondo la documentazione di Oracle 8 di Oracle:

public static void exit(int status)

Termina la Java Virtual Machine in esecuzione. L’argomento funge da codice di stato; per convenzione, un codice di stato diverso da zero indica una terminazione anomala .

Questo metodo chiama il metodo exit in class Runtime. Questo metodo non ritorna mai normalmente.

La chiamata System.exit(n) è effettivamente equivalente alla chiamata:

Runtime.getRuntime().exit(n)

 System.exit(0); 

Lo “0” consente a chiunque abbia chiamato il tuo programma di sapere che tutto è andato bene. Se, tuttavia, si esce a causa di un errore, si dovrebbe System.exit(1); o con un altro numero diverso da zero corrispondente all’errore specifico.

Inoltre, come altri hanno già detto, ripulisci prima! Ciò comporta la chiusura di file e altre risorse aperte.

System.exit(int i) deve essere utilizzato, ma lo includerei all’interno di un metodo più generico shutdown() , in cui includere anche i passaggi di “cleanup”, chiudere le connessioni socket, i descrittori di file, quindi uscire con System.exit(x) .

System.exit() solito non è il modo migliore, ma dipende dalla tua applicazione.

Il solito modo di terminare un’applicazione è uscire dal metodo main() . Questo non funziona quando ci sono altri thread non-deamon in esecuzione, come avviene normalmente per le applicazioni con un’interfaccia utente grafica (AWT, Swing, ecc.). Per queste applicazioni, è ansible trovare un modo per terminare il ciclo degli eventi della GUI (non so se è ansible con AWT o Swing) o richiamare System.exit() .

Sono d’accordo con Jon, fa reactjs la tua applicazione a qualcosa e chiama System.exit ().

Assicurati che:

  • si utilizza il valore di uscita appropriato. 0 è l’uscita normale, qualsiasi altra cosa indica che c’è stato un errore
  • chiudi tutti i flussi di input e output. File, connessioni di rete, ecc.
  • si registra o si stampa un motivo per uscire specialmente se è a causa di un errore

Usare dispose(); è un modo molto efficace per chiudere i tuoi programmi.

Ho scoperto che l’uso di System.exit(x) reimposta il riquadro delle interazioni e supponendo che tu abbia bisogno di alcune informazioni lì tutto scompare.

Ci sono due semplici risposte alla domanda.

Questo è il “modo professionale”:

 //This just terminates the program. System.exit(0); 

Questo è un modo più rozzo:

 //This just terminates the program, just like System.exit(0). return; 

La risposta è System.exit (), ma non è una buona cosa da fare in quanto ciò interrompe il programma. Qualsiasi ripulitura, distruzione che intendi fare non accadrà.

 Runtime.getCurrentRumtime().halt(0); 

System.exit (rinunciare); Esci immediatamente.

Questo dovrebbe farlo nel modo corretto:

 mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); mainFrame.addWindowListener(new WindowListener() { @Override public void windowClosing(WindowEvent e) { if (doQuestion("Really want to exit?")) { mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.dispose(); } } 

System.exit() farà ciò che vuoi. Ma nella maggior parte delle situazioni, probabilmente vuoi uscire da un thread e lasciare in vita il thread principale. In questo modo, è ansible interrompere un’attività, ma anche mantenere la possibilità di avviare un’altra attività senza riavviare l’app.