如何防止对System.exit()的调用终止JVM?

我几乎可以肯定这是不可能的,但是值得一试。

我正在为某个工具编写命令行界面。我说的是一个调用另一个Java应用程序的Java应用程序。该工具System.exit在执行后调用,从而终止了我自己的执行环境。我不要

有什么方法可以忽略System.exit来电吗?

回答:

是的,使用SecurityManager可以实现。尝试以下

class MySecurityManager extends SecurityManager {

@Override public void checkExit(int status) {

throw new SecurityException();

}

@Override public void checkPermission(Permission perm) {

// Allow other activities by default

}

}

在您的班级中,使用以下调用:

myMethod() {

//Before running the external Command

MySecurityManager secManager = new MySecurityManager();

System.setSecurityManager(secManager);

try {

invokeExternal();

} catch (SecurityException e) {

//Do something if the external code used System.exit()

}

}

以上是 如何防止对System.exit()的调用终止JVM? 的全部内容, 来源链接: utcz.com/qa/403365.html

回到顶部