Как запустить код после вызова Sytem.exit (0) в блоке finally

У меня есть три класса: alpha, beta, gamma, и каждый из трех классов имеет основной метод.

И альфа-, и бета-классы имеют внутри своего метода main блок try ... catch ... finally , например:

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);
        }
    }
}

Теперь в гамма-классе я вызываю main методы альфа- и бета-классов должны работать непрерывно, как показано ниже

public gamma{

    public static void main(String[] args) {
        try {
            alpha.main(arg);
            beta.main(arg1);
        } catch (Exception e) {
            e.printStackTrace();
        }
}

Проблема в том, что код beta.main (arg1) никогда не достигается из-за System.exit (0) внутри блока альфа-класса finally . Поскольку альфа- и бета-версии являются автономными приложениями, когда они выполняются отдельно, они должны прекратить работу службы в конце программы. Так что теперь есть способ добраться до строки beta.main (arg1) без значительного изменения фактической функциональности классов альфа и бета.

Пожалуйста, дайте мне знать, если вам понадобятся дополнительные подробности. Заранее благодарим ...

6
задан Mike Samuel 4 January 2012 в 17:12
поделиться