我正在制作一个适用于在小程序中运行的游戏的应用程序(我没有制作游戏,我只是为它制作东西,在这种情况下是启动器),但小程序的编码不是很整齐,所以它有来电System.exit(int)
。
我需要启动器在游戏崩溃或用户单击退出游戏按钮并尝试调用时保持打开状态,System.exit(int)
所以我能做到这一点的唯一方法是制作一个SecurityManager
类似于System.exit(int)
go 的功能来检查它是否允许退出 Java VM,如果不是,它将抛出异常。
保持启动器打开的解决方案的第二部分是创建一个,UncaughtExceptionHandler
以便它可以忽略尝试退出时抛出的异常;通过实现这一点,我还可以让启动器在它不是退出异常时通知用户启动器中的错误(如果它是其他东西,那不应该在那里,所以它会导致错误报告)。
现在,这个问题的实际问题是我如何SecurityManager
知道游戏或我的启动器是否正在尝试调用System.exit(int)
?我仍然需要我的启动器能够在需要时退出,游戏正是我想要限制的。
有人建议使用ProtectionDomain
来检测运行代码的代码库,但我不明白这是如何实现的。您没有对SecurityManager
.