1.查询jdk所在文件夹
/usr/libexec/java_home -V
查询结果根据本机环境大同小异,这是笔者结果:

2.打开HSDB
执行下面一行命令
sudo java -cp /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/lib/sa-jdi.jar sun.jvm.hotspot.HSDB
这里需要注意,如果你的电脑有多个jdk,启动的jdi的版本要和被查看java进程运行环境的jdk版本一致
,否做会有意外发生,成功效果如下:

3.运行java程序&获取对应进程
3.1 运行java程序
打开你的编辑器,笔者使用的是IDEA,随便写个类(JvmCode),写个main方法

3.2 获取对应进程
sudo java -cp /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/lib/sa-jdi.jar sun.jvm.hotspot.HSDB
找到JvmCode 对应的进程id,笔者是:35509

4.HSDB 各自使用姿势
###4.1 打开对应进程下线程视图&查看特定线程信息(栈信息)



4.2 查看一个对象(堆信息)
Tools => Class Browser

网友评论