Con respecto a C/C++ main() siempre debe devolver un número entero (cero para indicar el éxito y distinto de cero para indicar la falla). Puedo entender esto mientras se ejecuta el programa, se convierte en un proceso y cada proceso debe tener un estado de salida, que obtenemos haciendo echo $? de shell después de que el proceso se acaba.función principal no devuelve nada. ¿Por qué?
Ahora no entiendo por qué el método principal no devuelve nada en Java? ¿Tiene algo que ver con el hecho de que el programa se ejecuta en JVM y el proceso de JVM es reposicionable para devolver el estado de salida?
Por favor, aclare.
Gracias,
Roger
Quiere decir que si no tengo un System.exit() en mi programa, JVM lo agregará con 0. Y si mi programa tiene una llamada explícita con un valor distinto de cero, se usará como salida estado? – gameover
El proceso Java _no_ necesariamente finaliza si el método principal finaliza, por lo que (como señala kai1968) no es razonable devolver el código de salida del proceso del método principal. – jarnbjo
Todavía está mal. No es necesario utilizar herramientas como kill o System.exit para detener una aplicación Java multiproceso. Sugerencia: Incluso la aplicación Java "Hello World" más sencilla tiene múltiples subprocesos (la VM Java inicia sus propios subprocesos para diferentes problemas de gestión) y se cierra cuando se realiza el método principal. – jarnbjo