我有以下问题。假设一个人有ClassA
的沼泽标准主类。 ClassA
对ClassB#main()
执行反射调用。 ClassB
的main方法在某个时刻执行系统退出,这反过来也会终止ClassA#main()
的执行。
现在我的问题如下,有没有办法忽略来自System#exit()
主的ClassB
因此不会杀死JVM并继续运行ClassA
的主方法。这样的事情可能会在ClassB
没有大量篡改的情况下发生吗?
将以下非常简单的示例视为用例:
public class ClassA {
public static void main(String[] args) {
try {
ClassB.class.getMethod("main", String[].class)
.invoke(null, (Object) null);
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace();
}
}
}
public class ClassB {
public static void main(String[] args) {
System.out.println("I am running!");
System.exit(1);
}
}