本文介绍了Java详细类加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图列出Java类加载器加载我的类的顺序。如果我使用 -verbose
参数,它将列出它加载的每个接口/类,包括大量的接口,如Serializable,异常等。有没有办法调整这个输出所以它只显示在我的主方法定义的类中加载了哪些类?
I am trying to list the order in which the Java class loader is loading my classes. if I use -verbose
parameter it will list every single interface/class it loads, including tons of interfaces such as Serializable, exceptions etc. Is there a way to tweak this output so it only shows which classes are loaded in the class my main method is defined?
推荐答案
我想你最好的选择是做以下:
I guess your best bet is to do the following:
- 一旦你的
main
方法开始,就在它之前输出一些固定文本结束。 - 将详细输出管道传输到文件中
- 使用 less 或 grep 找到main方法中两个标签之间加载的类。
- Output some fixed text once your
main
method starts and right before it ends. - Pipe the verbose output into a file
- Use things like less or grep to find the classes loaded between the two tags from the main method.
有一个类似的问题,这里有一些答案:
There's a similar question and some answers here: Is there a way to get which classes a ClassLoader has loaded?
您是否尝试过 -verbose:class
?
这篇关于Java详细类加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!