外部のクラスのmain()を呼んだりしてみたところ、System.exit()されて後続の処理をキャンセルされてしまいました。それでは困るので、セキュリティマネージャーの力を借りてみました。 // 現在のセキュリティマネージャを取得 final SecurityManager originalManager = System.getSecurityManager(); // 新しいセキュリティマネージャを作る System.setSecurityManager(new SecurityManager() { // exitされたくない public void checkExit(int code){ throw new MyExitException(code, "can not exit."); } // 他の操作は元のセキュリティマネージャにお願い public void checkP