Java 详细类装入
2022-08-31 14:03:19
我正在尝试列出Java类装入器加载我的类的顺序。如果我使用参数,它将列出它加载的每个接口/类,包括大量的接口,如Serializable,exceptions等。有没有办法调整这个输出,使它只显示在我的主方法定义的类中加载了哪些类?-verbose
我正在尝试列出Java类装入器加载我的类的顺序。如果我使用参数,它将列出它加载的每个接口/类,包括大量的接口,如Serializable,exceptions等。有没有办法调整这个输出,使它只显示在我的主方法定义的类中加载了哪些类?-verbose
我想你最好的办法是做以下事情:
main
这里有一个类似的问题和一些答案:有没有办法得到ClassLoader加载了哪些类?
你试过吗?-verbose:class
下面是一个 sed 表达式,它将解析 java -verbose:class 的输出,以生成成对的已加载类名及其 jar 文件。您可以进一步通过管道传递排序以获取唯一的 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