Java 从API阻止System.exit()
我使用的第三方库System.exit()
在遇到异常时会执行a 。我从jar里使用API。无论如何,System.exit()
由于它导致我的应用程序关闭,我可以阻止该调用吗?System.exit()
由于其他许多许可问题,在删除后我无法反编译和重新编译jar 。我曾经在stackoverflow
中遇到一个[我不记得的其他问题]的答案,我们可以使用SecurityManager
Java来做这样的事情。
回答:
基本上,它会安装一个安全管理器,该安全管理器会使用此处的代码禁用System.exit()
,
private static class ExitTrappedException extends SecurityException { } private static void forbidSystemExitCall() {
final SecurityManager securityManager = new SecurityManager() {
public void checkPermission( Permission permission ) {
if( "exitVM".equals( permission.getName() ) ) {
throw new ExitTrappedException() ;
}
}
} ;
System.setSecurityManager( securityManager ) ;
}
private static void enableSystemExitCall() {
System.setSecurityManager( null ) ;
}
以上是 Java 从API阻止System.exit() 的全部内容, 来源链接: utcz.com/qa/419839.html