Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
212 views
in Technique[技术] by (71.8m points)

java - Obtain the bytes of a class loaded by the boostrap class loader?

I would like to know if it is possible to get the bytes of a class loaded by the bootstrap class loader. Everywhere I look, people suggest to get the bytes of an arbitrary class, one must simply do

Class.forName(className).getClassLoader().getResourceAsStream(className.replace('.', '/') + ".class");

And then read the InputStream with a method of your choice, however this is not possible on classes loaded by the bootstrap class loader (such as java.lang.Object), as for those classes Class#getClassLoader() returns null.

> Class.forName("java.lang.Object").getClassLoader()

null

Is this even possible? I've heard it can be done with instrumentation but I'm hoping there's a "better" way to do it (outside of locating rt.jar in the Java installation and reading the class data from there or something)

question from:https://stackoverflow.com/questions/65852376/obtain-the-bytes-of-a-class-loaded-by-the-boostrap-class-loader

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...