我从未听说过 premain
,我觉得问起来有点愚蠢,但是 the answer of this post建议运行它以获取 Instrumentation
对象。
但是如何调用该函数或如何调用它?
package playground;
import java.lang.instrument.Instrumentation;
public class ObjectSizeFetcher {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long getObjectSize(Object o) {
return instrumentation.getObjectSize(o);
}
}
最佳答案
premain
是一种与 java.lang.instrument
包相关的机制,用于加载在 Java 程序中进行字节码更改的“代理”。
java.lang.instrument
documentation 中解释了该机制。 .
它的要点是“代理”部署在一个 jar 中,并且该 jar 在其 list 中有一个特殊条目,它告诉检测包在哪里寻找 premain 方法。您引用的来源应该是一个简单的代理。
关于java - 什么是 premain() 以及它是如何被调用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27851588/