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


    学习文档: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的问题笔记

  • 相关阅读:
    两年的日子,我与你一起度过!
    惠普旋转触屏本TouchSmart tm2开箱视频展示
    你必须知道iPad的10件事
    如果Google统治世界[组图]
    Nexus One运行Android 2.1+Sense UI图赏
    不能只刷机 G3玩家展示给手机外壳刷漆
    这两天的状况不好!
    Google Code上10个有意思的项目
    在虚拟机中如何安装Mac OS X Snow Leopard 10.6
    四大浏览器Windows 7平台多项测试对比
  • 原文地址:https://www.cnblogs.com/kendoziyu/p/16539268.html
Copyright © 2020-2023  润新知