本文介绍了Java 详细类加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试列出 Java 类加载器加载我的类的顺序.如果我使用 -verbose 参数,它将列出它加载的每个接口/类,包括大量接口,如可序列化、异常等.有没有办法调整这个输出,所以它只显示哪些类是加载在我的主方法定义的类中?

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 方法开始后和结束之前输出一些固定文本.
  • verbose 输出通过管道传输到文件中
  • 使用 lessgrep 之类的东西从 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.

这里有一个类似的问题和一些答案:有没有办法获取 ClassLoader 加载了哪些类?

There's a similar question and some answers here: Is there a way to get which classes a ClassLoader has loaded?

您尝试过 -verbose:class 吗?

这篇关于Java 详细类加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-12 20:33