De acuerdo con la documentación de Java 8 de Oracle:
public static void exit(int status)
Termina la máquina virtual Java actualmente en ejecución. El argumento sirve como un código de estado; por convención, un código de estado distinto de cero indica una terminación anormal .
Este método llama al método de salida en clase Runtime. Este método nunca vuelve normalmente.
La llamada System.exit(n)es efectivamente equivalente a la llamada:
El "0" le dice a quien llamó a su programa que todo salió bien. Sin embargo, si está saliendo debido a un error, debería hacerlo System.exit(1);, o con otro número distinto de cero correspondiente al error específico.
Además, como otros han mencionado, ¡limpie primero! Eso implica cerrar archivos y otros recursos abiertos.
Como dice 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
10
System.exit(int i)se utilizará, pero lo incluiría dentro de un shutdown()método más genérico , donde también incluiría pasos de "limpieza", cierre de conexiones de socket, descriptores de archivo, y luego salir con System.exit(x).
System.exit() Por lo general, no es la mejor manera, pero depende de su aplicación.
La forma habitual de finalizar una aplicación es salir del main()método. Esto no funciona cuando hay otros subprocesos que no son deamon en ejecución, como es habitual en aplicaciones con una interfaz gráfica de usuario (AWT, Swing, etc.). Para estas aplicaciones, puede encontrar una manera de finalizar el bucle de eventos de la GUI (no sabe si eso es posible con AWT o Swing), o invocar System.exit().
System.exit(0); return;también es bueno, el retorno evita que se ejecute cualquier código de ruta antes de que el sistema pueda salir, de lo contrario necesitaría un indicador (..i.e. if (!called_exit) { further code after exit statement }
Mejor: Runtime.getRuntime (). Halt (0); ¡Funcionó perfectamente para mí dentro de Scala!
Gerhard Hagerer
@GerhardHagerer pero ¿y si obtienes el runti no actual, yo?
Dude Bro
1
Del Javadoc para halt: "Este método debe usarse con extrema precaución. A diferencia del exitmétodo, este método no hace que se inicien los ganchos de apagado y no ejecuta finalizadores no invocados si se ha habilitado la finalización al salir. Si la secuencia de apagado se ha activado. ya iniciado, entonces este método no espera a que los ganchos de cierre o finalizadores en ejecución finalicen su trabajo ". En resumen, no debería necesitar usar halt, debería preferir exit.
Erwin Bolwidt
-1
System.exit()Hará lo que quieras. Pero en la mayoría de las situaciones, es probable que desee salir de un hilo y dejar vivo el hilo principal. Al hacerlo, puede finalizar una tarea, pero también mantener la capacidad de iniciar otra tarea sin reiniciar la aplicación.
Respuestas:
Puedes usar
System.exit()
para este propósito.De acuerdo con la documentación de Java 8 de Oracle:
fuente
El "0" le dice a quien llamó a su programa que todo salió bien. Sin embargo, si está saliendo debido a un error, debería hacerlo
System.exit(1);
, o con otro número distinto de cero correspondiente al error específico.Además, como otros han mencionado, ¡limpie primero! Eso implica cerrar archivos y otros recursos abiertos.
fuente
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.System.exit(int i)
se utilizará, pero lo incluiría dentro de unshutdown()
método más genérico , donde también incluiría pasos de "limpieza", cierre de conexiones de socket, descriptores de archivo, y luego salir conSystem.exit(x)
.fuente
System.exit()
Por lo general, no es la mejor manera, pero depende de su aplicación.La forma habitual de finalizar una aplicación es salir del
main()
método. Esto no funciona cuando hay otros subprocesos que no son deamon en ejecución, como es habitual en aplicaciones con una interfaz gráfica de usuario (AWT, Swing, etc.). Para estas aplicaciones, puede encontrar una manera de finalizar el bucle de eventos de la GUI (no sabe si eso es posible con AWT o Swing), o invocarSystem.exit()
.fuente
Usar
dispose();
es una forma muy efectiva de cerrar sus programas.Descubrí que el uso
System.exit(x)
restablece el panel de interacciones y suponiendo que necesita algo de la información allí, todo desaparece.fuente
Estoy de acuerdo con Jon, haga que su aplicación reaccione a algo y llame a System.exit ().
Estar seguro de que:
fuente
La respuesta es System.exit (), pero no es algo bueno, ya que esto anula el programa. Cualquier limpieza, destrucción que pretendes hacer no sucederá.
fuente
Hay dos respuestas simples a la pregunta.
Esta es la "forma profesional":
Esta es una forma más torpe:
fuente
System.exit(0); return;
también es bueno, el retorno evita que se ejecute cualquier código de ruta antes de que el sistema pueda salir, de lo contrario necesitaría un indicador (..i.e. if (!called_exit) { further code after exit statement }
fuente
halt
: "Este método debe usarse con extrema precaución. A diferencia delexit
método, este método no hace que se inicien los ganchos de apagado y no ejecuta finalizadores no invocados si se ha habilitado la finalización al salir. Si la secuencia de apagado se ha activado. ya iniciado, entonces este método no espera a que los ganchos de cierre o finalizadores en ejecución finalicen su trabajo ". En resumen, no debería necesitar usarhalt
, debería preferirexit
.System.exit()
Hará lo que quieras. Pero en la mayoría de las situaciones, es probable que desee salir de un hilo y dejar vivo el hilo principal. Al hacerlo, puede finalizar una tarea, pero también mantener la capacidad de iniciar otra tarea sin reiniciar la aplicación.fuente
System.exit (ABORT); Salir es el proceso de inmediato.
fuente
Esto debería hacerlo de la manera correcta:
fuente