Tengo tres clases que dicen alfa, beta, gamma y cada una de las tres clases tiene un método main
.Cómo ejecutar código después de una llamada a Sytem.exit (0) en un bloque finally
Tanto alfa y clases beta han, dentro de su método main
, un bloque try...catch...finally
como:
public class alpha{
public static void main(String[] args){
try{
Do something;
}catch(Exception ex){
ex.printStackTrace();
}
finally{
System.exit(0);
}
}
}
public class beta{
public static void main(String[] args){
try{
Do something;
}catch(Exception ex){
ex.printStackTrace();
}
finally{
System.exit(0);
}
}
}
Ahora en la clase gamma i llaman principales métodos de clases de alfa y beta para funcionar continuamente, como a continuación
public gamma{
public static void main(String[] args) {
try {
alpha.main(arg);
beta.main(arg1);
} catch (Exception e) {
e.printStackTrace();
}
}
El problema es que nunca se llega al código beta.main(arg1)
debido al System.exit(0)
dentro del bloque finally
de la clase alpha. Dado que alfa y beta son aplicaciones independientes cuando se ejecutan por separado, deben finalizar el servicio al final del programa. Así que ahora hay alguna forma de llegar a la línea beta.main(arg1)
sin cambiar demasiado la funcionalidad real de las clases alfa y beta.
Por favor, hágamelo saber si necesita más detalles. Gracias de antemano ...
posible duplicado de [Prevención System.exit() de API] (http://stackoverflow.com/questions/5401281/preventing-system -exit-from-api) – Mat