1. 程式人生 > >初次嘗試java虛擬機調試-啟動HSDB

初次嘗試java虛擬機調試-啟動HSDB

java 虛擬機 hsdb

本人最近正在學習java虛擬機,而HSDB是學習java虛擬機的必經之路,於是今天嘗試下了HSDB的調試。

首先借鑒了知乎大牛R大的文章: 借HSDB來探索HotSpot VM的運行時數據,而本文章的意義在於幫助和我一樣想學習java虛擬機但平時過於依賴ide的同學。我的環境是JDK8。廢話不多說了,直接上圖。

1.創建並編譯代碼

技術分享

由於平時使用eclipse,如果沒有配好path、javahome和classpath要首先配好,然後cmd進入工程目錄下,我的package是hsdb,需要進入到hsdb的上級目錄下,執行編譯:

技術分享

2.jdb調試代碼並暫停

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

技術分享

3.使用jps查看java程序pid

上圖的cmd窗口保留不動,重新打開一個新的cmd窗口,使用jps查看java程序的進程號並執行後續的HSDB啟動操作

技術分享

圖中我們可以看到Main的pid是18392.

4.啟動HSDB

註意:我們大多的java裝在了C:\Program Files下路 這個完整classpath路徑需要用雙引號轉義一下,如下圖:

技術分享

執行完這個命令之後我們的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號鏈接到進程

技術分享


技術分享

技術分享


至此,我們HSDB工具已經連接到我們的java進程中,可以進行進一步的調試了。本文章意在幫助第一次使用HSDB調試的同學爬坑,並給自己做個筆記。

本文出自 “剎那華芳” 博客,請務必保留此出處http://9903567.blog.51cto.com/9893567/1923901

初次嘗試java虛擬機調試-啟動HSDB