ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【学习笔记】启动HSDB并连接到Hotspot进程

2022-08-01 12:00:27  阅读:184  来源: 互联网

标签:geekziyu HSDB xhost 笔记 hsdb Hotspot ubuntu DISPLAY


学习文档:Windows10上启动HSDB并查看运行时数据 #50

一、启动 HSDB

Windows

在桌面上新建文本格式的 hsdb.bat 文件,然后双击启动该程序:

java -cp %JAVA_HOME%\lib\sa-jdi.jar sun.jvm.hotspot.HSDB

Ubuntu

~ 用户目录创建文件 Makefile,如果有的话就不要重复创建。在文件中追加以下内容:

hsdb:
	sudo java -cp ${JAVA_HOME}/lib/sa-jdi.jar sun.jvm.hotspot.HSDB

~ 用户目录执行 make hsdb 命令,可能会出现以下错误:

No protocol specified
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':10.0' as the value of the DISPLAY variable.

我在 bing.com 搜索 “启动hsdb No protocol specified”,然后找到一些资料。

如果执行 xhost + 以下结果,表示正确:

geekziyu@ubuntu-1:~$ xhost +
access control disabled, clients can connect from any host

然后,我照着网上说的,执行 export DISPLAY=:1 或者 export DISPLAY=localhost:1,再执行 xhost + 出现错误

geekziyu@ubuntu-1:~$ export DISPLAY=localhost:1
geekziyu@ubuntu-1:~$ xhost +
xhost: unable to open display "localhost:1"
geekziyu@ubuntu-1:~$ export DISPLAY=:1
geekziyu@ubuntu-1:~$ xhost +
xhost: unable to open display ":1"

最后,我又重新设置了第一次启动hsdb报错时的值:10.0 ,然后莫名其妙地就好了

geekziyu@ubuntu-1:~$ export DISPLAY=:10.0
geekziyu@ubuntu-1:~$ xhost +
access control disabled, clients can connect from any host
geekziyu@ubuntu-1:~$ make hsdb

我说不出为什么,反正就是很奇怪。

二、让你的程序运行后死循环或者阻塞

常见的手段,在Java的main函数最后一行加一句代码

  • 或者 System.in.read();
  • 或者 Thread.sleep(Integer.MAX_VALUE);
  • 或者 while (true);

接着,IDEA中运行main方法,启动上面的进程。

然后,命令行中输入 jps 查看 JVM 进程:

三、连接到Hotspot进程

打开HSDB界面,左上角点击File > Attach to Hotspot process,输入12988,点击OK或回车

如果遇到 Attach Processing 一直卡的情况,并且打开 HSDB 的命令行出现类似

java.lang.UnsatisfiedLinkError: Can't load library:D:\Common\Java\jre1.8.0_131\bin\sawindbg.dll

这样的错误,则需要从 JDK 的安装路径下\jre\bin(比如我的是 D:\Common\Java\jdk1.8.0_131\jre\bin)拷贝 sawindbg.dll 文件到出错目录(比如我的是D:\Common\Java\jre1.8.0_131\bin\)下。

参考文档:HSDB时,关于解决UnsatisfiedLinkError sawindbg.dll的问题笔记

标签:geekziyu,HSDB,xhost,笔记,hsdb,Hotspot,ubuntu,DISPLAY
来源: https://www.cnblogs.com/kendoziyu/p/16539268.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有