获取从所有JVM使用的所有Java类的列表';s
我想要一个列表,列出在某一时刻加载到多线程/JVM中的所有类 我知道,当您使用获取从所有JVM使用的所有Java类的列表';s,java,linux,classloader,Java,Linux,Classloader,我想要一个列表,列出在某一时刻加载到多线程/JVM中的所有类 我知道,当您使用-verbose参数运行java时,可以将其写入如下文件:java-verbose:class com.package.Foo>classes used.txt 然而,我的主程序中有一些线程使用shell脚本来启动一个新的jar。我希望避免在每个shell脚本中都必须编写-verbose参数,我想知道在Linux上是否还有其他方法可以做到这一点?您可以使用JDK附带的jcmd命令。它不需要在启动时将任何特殊参数传递给J
-verbose
参数运行java时,可以将其写入如下文件:java-verbose:class com.package.Foo>classes used.txt
然而,我的主程序中有一些线程使用shell脚本来启动一个新的jar。我希望避免在每个shell脚本中都必须编写
-verbose
参数,我想知道在Linux上是否还有其他方法可以做到这一点?您可以使用JDK附带的jcmd命令。它不需要在启动时将任何特殊参数传递给JVM
jcmd
将列出当前运行的所有JVM及其pid(进程id)
jcmd GC.class\u直方图
然后将列出当前加载到该JVM中的每个类,以及实例数。这正是我要查找的!非常感谢D
jcmd <pid> GC.class_histogram