我有一个 TrirdParty API,其中包含一个 CLass [比如说 A]。它有一个奇怪的静态块,类似于以下内容:
class A
{
static
{
try
{
System.loadLibrary("libraryName");
}
catch(UnsatisfiedLinkError ue)
{
System.exit(0);
}
}
//other stuff
}
我想阻止调用System.exit()
被覆盖的SecurityManager
. 但是,我想在执行SecurityManager
此块之前覆盖,然后static
我想恢复原始安全管理器。
我知道如何替换/覆盖/恢复SecurityManager
。
我的问题是如何确定何时static
调用块[基本上是在加载类时],以便在此之前我将使用我自己的SecurityManager
来防止System.exit()
和之后恢复原始SecurityManager
.
请注意,仅在执行静态块的持续时间内覆盖安全管理器很重要。
编辑:
出于许可原因,更改源不是一种选择。