【发布时间】:2021-05-22 07:07:24
【问题描述】:
我想知道是否可以获取由引导类加载器加载的类的字节。在我看到的任何地方,人们都建议获取任意类的字节,必须简单地这样做
Class.forName(className).getClassLoader().getResourceAsStream(className.replace('.', '/') + ".class");
然后使用您选择的方法读取InputStream,但是这在引导类加载器加载的类(例如java.lang.Object)上是不可能的,因为那些类Class#getClassLoader()返回null。
> Class.forName("java.lang.Object").getClassLoader()
null
这甚至可能吗?我听说它可以通过检测来完成,但我希望有一种“更好”的方式来做到这一点(在 Java 安装中定位 rt.jar 并从那里读取类数据或其他东西)
【问题讨论】:
标签: java classloader