Java详细的类加载
我想列出Java类加载器加载我的类的顺序。 如果我使用-verbose
参数,它会列出它加载的每一个接口/类,包括吨接口,如Serializable,exception等。有没有办法来调整这个输出,所以它只显示哪些类加载在我的主要方法被定义为?
我想你最好的select是做下面的事情:
- 一旦你的
main
方法开始,并在结束之前输出一些固定的文本。 - 将详细输出传送到文件中
- 使用less或grep这样的东西来查找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