Java详细的类加载

我想列出Java类加载器加载我的类的顺序。 如果我使用-verbose参数,它会列出它加载的每一个接口/类,包括吨接口,如Serializable,exception等。有没有办法来调整这个输出,所以它只显示哪些类加载在我的主要方法被定义为?

我想你最好的select是做下面的事情:

  • 一旦你的main方法开始,并在结束之前输出一些固定的文本。
  • 详细输出传送到文件中
  • 使用lessgrep这样的东西来查找main方法中两个标签之间加载的类。

有一个类似的问题,在这里有一些答案: 有没有办法得到一个ClassLoader加载哪些类?

你有没有试过 – -verbose:class

下面是一个sedexpression式,它将parsingjava -verbose:class的输出以产生加载的类名和它的jar文件对。 你可以通过sorting来获得独特的jar文件。 例如,

 java -verbose:class -version 2>/dev/null | sed -ne 's/\[Loaded \(.\+\) from \(.\+\)\]/\2/p' | sort -u 

输出

 /usr/local/jdk1.7.0_67/jre/lib/rt.jar