gpt4 book ai didi

java - 如何检测ClassLoading的时间

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:11 26 4
gpt4 key购买 nike

我有一个 TrirdParty API,其中包含一个类 [假设是 A]。它有一个奇怪的静态 block ,类似于以下内容:

class A
{
static
{
try
{
System.loadLibrary("libraryName");
}
catch(UnsatisfiedLinkError ue)
{
System.exit(0);
}
}

//other stuff
}

我想用覆盖的 SecurityManager 阻止调用 System.exit()。但是,我想在执行此 static block 之前覆盖 SecurityManager ,然后我想恢复原始安全管理器。

我知道如何替换/覆盖/恢复 SecurityManager

我的问题是如何确定何时调用 static block [基本上是何时加载类],以便在此之前我将使用我自己的 SecurityManager 以防止 System.exit() 并在之后恢复原始的 SecurityManager

请注意,仅在执行静态 block 时覆盖安全管理器很重要。

编辑:

出于许可原因,不能更改源。

最佳答案

为什么您不能使用一些字节码处理库(例如 Javassist)将 static{} block 替换为您需要的 block ?

关于java - 如何检测ClassLoading的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com