Ren*_*eld 2 java linux classloader
我希望有一个列表,列出在某个时刻在多个线程/ JVM中加载的所有类.
我知道当你使用-verbose参数运行java时,你可以将它写成一个文件,如下所示:java -verbose:class com.package.Foo > classes-used.txt
但是,我的主程序中有一些线程使用shell脚本来启动一个新的jar.我想避免必须-verbose在每个shell脚本中编写参数,我想知道在Linux上是否还有其他方法可以做到这一点?
您可以使用JDK附带的jcmd命令.它不需要任何特殊参数在启动时通过JVM.
jcmd
Run Code Online (Sandbox Code Playgroud)
将列出当前正在运行的所有JVM及其pid(进程ID).
jcmd <pid> GC.class_histogram
Run Code Online (Sandbox Code Playgroud)
然后将列出当前在该JVM中加载的每个类,以及多少个实例的计数.
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |