gpt4 book ai didi

java - 是什么导致 Java 类被加载?

转载 作者:行者123 更新时间:2023-12-01 09:53:08 25 4
gpt4 key购买 nike

我试图打开一个Java类文件,检测字节码并在类加载到JVM之前保存类文件。我的问题是类“太快”加载到 JVM 中。类加载到 JVM 后,就会对字节码进行检测。

-verbose:class 在加载每个类时打印,但它没有告诉我是什么触发了 JVM 加载该类。如何获取显示正在加载的类的调用堆栈?

在以下代码中放置断点,显示类初始化且未加载时的调用堆栈。

static
{
System.out.println("Initialized!");
}

注意:我知道我可以使用 Java 代理来执行此操作并保证字节码已被检测。但是,我出于多种原因选择了这条路线。

最佳答案

我打开了java.lang.ClassLoader,并在loadClass(String name, boolean resolve)中设置了一个条件断点。条件为 arg0.endsWith("MyClass"),其中 arg0name 参数。当断点被触发时,IDE会显示调用堆栈。调用堆栈上的几个帧向我展示了加载该类的原因。

注意:此条件在 Eclipse IDE 中有效,在其他 IDE 中可能需要进行一些调整。

关于java - 是什么导致 Java 类被加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469208/

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