¿Cuál es la mejor manera de cerrar una aplicación Java con código?Cómo cerrar una aplicación java desde el programa
Respuesta
Puede usar System.exit()
para este fin.
De acuerdo con la documentación de Java de Oracle 8:
public static void exit(int status)
pone término a los actualmente en ejecución Java Virtual Machine. El argumento sirve como un código de estado; por convención, un código de estado distinto de indica una terminación anormal.
Este método llama al método de salida en la clase Runtime. Este método nunca regresa normalmente.
La llamada
System.exit(n)
es efectivamente equivalente a la llamada:
Runtime.getRuntime().exit(n)
System.exit(0);
El "0" permite a quien llama su programa de saber que todo ha ido bien. Sin embargo, si abandona debido a un error, debe System.exit(1);
, o con otro número distinto de cero correspondiente al error específico.
Además, como han mencionado otros, limpie primero! Eso implica cerrar archivos y otros recursos abiertos.
pensé que era System.exit (1)? – AFK
Como afirma Chris, 'System.exit (1)' (o cualquier otro número) es si desea indicar que se cerró debido a un error. 'System.exit (0)' indica que el programa se cerró normalmente. También puede cambiar 1 a cualquier número que desee, luego, cuando está ejecutando su aplicación desde un script, puede determinar si hubo un error. – StormPooper
Estoy de acuerdo con Jon, haga que su aplicación reaccione a algo y llame a System.exit().
asegúrese de que:
- utiliza el valor de salida adecuada. 0 es la salida normal, cualquier otra cosa indica que hubo un error
- cierra todas las secuencias de entrada y salida. Archivos, conexiones de red, etc.
- iniciar sesión o imprimir una razón para salir, especialmente si su causa de un error
System.exit()
no suele ser la mejor manera, pero depende de su aplicación.
La forma habitual de finalizar una aplicación es saliendo del método main()
. Esto no funciona cuando hay otros subprocesos no deamon en ejecución, como es habitual para las aplicaciones con una interfaz gráfica de usuario (AWT, Swing, etc.). Para estas aplicaciones, puede encontrar la manera de finalizar el ciclo de eventos de la GUI (no sé si eso es posible con AWT o Swing), o invocar System.exit()
.
System.exit(int i)
se va a utilizar, pero me gustaría incluirlo dentro de un shutdown()
método más genérico, en el que incluiría pasos "limpieza", así, el cierre de conexiones de socket, descriptores de archivos, a continuación, que salen con System.exit(x)
.
La respuesta es System.exit(), pero no es algo bueno que hacer, ya que cancela el programa. Cualquier limpieza, destrucción que pretendas hacer no sucederá.
El uso de dispose();
es una forma muy efectiva de cerrar sus programas.
Encontré que usar System.exit(x)
restablece el panel de interacciones y suponiendo que necesita algo de la información, todo desaparece.
Runtime.getCurrentRumtime().halt(0);
Mejor: Runtime.getRuntime(). Detener (0); ¡Funcionó perfectamente para mí dentro de Scala! –
@GerhardHagerer, pero ¿y si obtienes el runti no actual, yo? –
Desde el Javadoc para 'alto ':" Este método debe usarse con extrema precaución. A diferencia del método' exit ', este método no provoca que se inicien los ganchos de cierre y no ejecuta los finalizadores no invocados si finalization-on-exit ha sido habilitado. Si la secuencia de apagado ya se ha iniciado, este método no espera a que ningún enganche o finalizador en ejecución finalicen su trabajo ". En resumen, no debería necesitar usar 'detener', debería preferir' exit'. –
System.exit (ABORT); Salga del proceso de inmediato.
No existe una variable como ABORT. –
Hay dos respuestas simples a la pregunta.
Esta es la "manera profesional":
//This just terminates the program.
System.exit(0);
Esta es una forma más torpe:
//This just terminates the program, just like System.exit(0).
return;
'System.exit (0); return; 'también es bueno, el retorno impide que se ejecute ningún código ruther antes de que el sistema pueda salir; de lo contrario, necesitaría un indicador (..' i.e. if (! called_exit) {más código después de exit statement} ' – ycomp
Esto debe hacerlo de la manera correcta:
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()
hará lo que quieras Pero en la mayoría de las situaciones, es probable que desee salir de un hilo y dejar el hilo principal activo. Al hacer eso, puede terminar una tarea, pero también mantener la capacidad de comenzar otra tarea sin reiniciar la aplicación.
- 1. Cómo cerrar una aplicación Java Swing desde el código
- 2. Cómo cerrar un jframe sin cerrar el programa principal
- 3. ¿Cómo ejecutar un programa Java desde C#?
- 4. ¿Cómo cerrar la aplicación WPF desde el menú contextual?
- 5. notificar View (Modelos) de cerrar el programa
- 6. Ejecutar programa externo desde Java
- 7. ¿Cómo cerrar un programa usando python?
- 8. Evite cerrar la aplicación Java swing
- 9. ¿Cómo cerrar una aplicación en BlackBerry PlayBook?
- 10. El socket permanece abierto después de cerrar el programa (C++)
- 11. Cerrar una aplicación usando WiX
- 12. Cómo cerrar una conexión HTTP desde el HttpServlet
- 13. ¿Cómo comprobar si el programa se ejecuta desde una consola?
- 14. Ejecutar archivo .jar desde un programa Java
- 15. ¿Cómo desactivo el diálogo 'Depurar/Cerrar aplicación' en Windows Vista?
- 16. Cerrar operación Java
- 17. cómo cerrar una ventana desde un proceso diferente
- 18. ¿Cómo puedo cerrar programáticamente una aplicación para iPad?
- 19. Java: ¿Es posible enviar SMS desde una aplicación Java?
- 20. Acceda al recurso compartido NFS desde el programa Java
- 21. ¿Cómo servir un socket desde una aplicación Java EE?
- 22. ¿Cómo transmitir video en vivo desde una aplicación Java?
- 23. Cómo cerrar todos los ejecutores al salir de una aplicación?
- 24. ¿Cómo enciende y apaga un monitor desde una aplicación Java?
- 25. Método de llamada en undeploy desde una aplicación web Java
- 26. Cómo depurar la aplicación Java desde el editor Sublime Text
- 27. ¿Cómo ejecuto un programa Java desde un directorio diferente?
- 28. WPF (MVVM): ¿Cerrar una vista desde Viewmodel?
- 29. ¿Cómo cerrar un socket dejado abierto por un programa destruido?
- 30. ¿Cómo puedo forzar que todos los subprocesos de programa salgan al cerrar el programa?
Hmm. Creo que la pregunta puede ser demasiado general. ¿Salir bajo qué circunstancias? –
Deje que todos sus hilos no daemon terminen normalmente? –
Solo para salir generalmente – Olaseni