Java 如何在没有类引用的情况下检测函数运行的代码库?

Java 如何在没有类引用的情况下检测函数运行的代码库?,java,Java,我正在制作一个应用程序,它与运行在小程序中的游戏一起工作(我没有制作游戏,我只是为它制作东西,在本例中是启动器),但小程序的编码不是很整齐,因此它可以调用System.exit(int) 当游戏崩溃或用户单击退出游戏按钮并试图调用System.exit(int)时,我需要启动程序保持打开状态,因此我唯一能做的就是制作一个SecurityManager,其功能类似于System.exit(int)查看是否允许退出Java VM,如果不允许,它将抛出一个exeption 保持启动器打开的解决方案的第

我正在制作一个应用程序,它与运行在小程序中的游戏一起工作(我没有制作游戏,我只是为它制作东西,在本例中是启动器),但小程序的编码不是很整齐,因此它可以调用
System.exit(int)

当游戏崩溃或用户单击退出游戏按钮并试图调用
System.exit(int)
时,我需要启动程序保持打开状态,因此我唯一能做的就是制作一个
SecurityManager
,其功能类似于
System.exit(int)
查看是否允许退出Java VM,如果不允许,它将抛出一个exeption

保持启动器打开的解决方案的第二部分是创建一个
UncaughtExceptionHandler
,这样它就可以忽略试图退出时抛出的异常;通过实现这一点,我还可以让启动器在它不是退出异常时通知用户启动器中的错误(如果它是其他异常,那么它不应该在那里,因此它将生成错误报告)

现在,这个问题所涉及的实际问题是我如何让
安全管理器
知道游戏或试图调用
System.exit(int)
的启动器?
我仍然需要我的启动器能够在需要时退出,游戏正是我想要限制的



有人建议使用
ProtectionDomain
来检测运行代码的代码库,但我不明白这是如何实现的。您在
SecurityManager

中没有对类的引用,听起来您希望为构成小程序的类单独设置一个
ProtectionDomain
(和
CodeSource
)。我尝试过研究这个问题,但不知道如何实现它,您能提供更多细节吗?