java 虚拟机 启动_初次尝试java虚拟机调试-启动HSDB

本文记录了一次使用HSDB调试Java虚拟机的过程。从创建并编译代码,通过jdb暂停程序,使用jps获取进程ID,再到解决启动HSDB时遇到的UnsatisfiedLinkError问题,最后成功连接到Java进程进行调试。适合初学者参考。
摘要由CSDN通过智能技术生成

本人最近正在学习java虚拟机,而HSDB是学习java虚拟机的必经之路,于是今天尝试下了HSDB的调试。

首先借鉴了知乎大牛R大的文章:   借HSDB来探索HotSpot VM的运行时数据,而本文章的意义在于帮助和我一样想学习java虚拟机但平时过于依赖ide的同学。我的环境是JDK8。废话不多说了,直接上图。

1.创建并编译代码

66a5298b01fdd4ba39cd961181080c74.png

由于平时使用eclipse,如果没有配好path、javahome和classpath要首先配好,然后cmd进入工程目录下,我的package是hsdb,需要进入到hsdb的上级目录下,执行编译:

fff83c2107759ffd792adb29e7a9d678.png

2.jdb调试代码并暂停

ps:jdb,jps和sa-jdi.jar都在jdk lib和bin目录下

58fa117a0a1e45bba38e65401f8fa65b.png

3.使用jps查看java程序pid

上图的cmd窗口保留不动,重新打开一个新的cmd窗口,使用jps查看java程序的进程号并执行后续的HSDB启动操作

b1c4225edf5c8d6ab39b791bdaf4ebec.png

图中我们可以看到Main的pid是18392.

4.启动HSDB

注意:我们大多的java装在了C:\Program Files下路 这个完整classpath路径需要用双引号转义一下,如下图:

2a169917ea1444a2079c45030145fd09.png

执行完这个命令之后我们的HSDB工具就应该启动了。但是我启动的时候报了一个错误:Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can't load library: D:\Program Files\Java\XXX\sawindbg.dll.参照如下文章进行了解决 HSDB时,关于解决UnsatisfiedLinkError sawindbg.dll的问题笔记。

然后我们就可以用pid号链接到进程

a005e452ac6cd6bc119f5a6f0f3a02f3.png

428c581d03c1686ae5205cd71397e2b6.png

16aedcd8b16120a1caa2f042b4247507.png

至此,我们HSDB工具已经连接到我们的java进程中,可以进行进一步的调试了。本文章意在帮助第一次使用HSDB调试的同学爬坑,并给自己做个笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值