idea + jconsole

1 确认jconsole位置

首先准备工作,需要确定已经了安装jdk。

进入目录 jdk安装路径,例如:C:\demo\development\java\jdk1.8.0_212

**

idea java 查看线程堆栈 idea查看线程运行情况_intellij-idea


**

进入bin目录之后,你会找到

idea java 查看线程堆栈 idea查看线程运行情况_intellij-idea_02


点击之后,进入如下图示之后,选择远程连接,jconsole的操作就完成了,接下来需要准备你的程序

idea java 查看线程堆栈 idea查看线程运行情况_intellij idea_03

2 准备idea程序

首先,需要一个运行的程序,提供一个简单的例子:

package com.spring.zcl.study.springbootstudy.thread;

import java.util.concurrent.TimeUnit;

/**
 *
 * @Author: zcl
 * @Date: 2021-12-17 10:04
 */
public class Thread01 {

    public static void main(String[] args) {
        new Thread(Thread01::watching).start();
        working();
    }

    public static void watching(){
        for ( ; ; ) {
            System.out.println("I'm watching!");
            Thread01.sleep(1);
        }
    }

    public static void working(){
        for ( ; ; ) {
            System.out.println("I'm working!");
            Thread01.sleep(1);
        }
    }

    public static void sleep(int seconds){
        try {
            TimeUnit.SECONDS.sleep(seconds);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

其次,idea中的工具栏,右边有一个configuration配置,如下图所示,

idea java 查看线程堆栈 idea查看线程运行情况_java_04


idea java 查看线程堆栈 idea查看线程运行情况_idea java 查看线程堆栈_05


点击开之后选择Edit Configurations… 选项,点击开之后,本人的是因为已经配置过了,所以都是存在的数据,如果你未运行过你的程序,这些都是空的,需要你主动配置一下

idea java 查看线程堆栈 idea查看线程运行情况_idea java 查看线程堆栈_06


上图中的配置项,名字是任意填写(别重复就行),jdk版本和程序启动类都是下拉选,选择你想要运行的程序启动类路径即可。

其中比较中的就是jvm配置,当然如果是第一次点击进行有可能不存在这个文本框,不要着急,点击Modify options即可找到对应的VM options

上图片

idea java 查看线程堆栈 idea查看线程运行情况_intellij idea_07


接下来就是添加jvm配置,此配置拿走不谢

-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

接下来是解释

-Djava.rmi.server.hostname=127.0.0.1   此为运行服务的ip地址,也就是服务器端的ip地址,换言之监控ip
-Dcom.sun.management.jmxremote       设置JVM允许远程jmx进行调用查看(本人删除了实验了一下,不影响实际连接监控的)
-Dcom.sun.management.jmxremote.port=8888     此为运行服务的端口,也就是服务器端的端口,换言之监控端口
-Dcom.sun.management.jmxremote.ssl=false       ssl协议关闭(ssl协议可以了解下,这个是关于安全方面的协议,一般会对数据进行封装、压缩和加密)
-Dcom.sun.management.jmxremote.authenticate=false  是否登录验证(方便测试,直接false,当然你也可以开启,在配置下用户名和密码即可)

配置完成,大功告成,记得apply一下,你知道,idea中不应用,不会生效的,启动程序,第一步勾选远程链接之后等待的输入框,可以输入了,也就是监控的ip和端口填写上就行,也就是,这俩货

-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=8888

点击链接之后会出现这个提示,点不安全链接即可

idea java 查看线程堆栈 idea查看线程运行情况_idea java 查看线程堆栈_08


运行效果图:

idea java 查看线程堆栈 idea查看线程运行情况_idea java 查看线程堆栈_09


idea java 查看线程堆栈 idea查看线程运行情况_java_10


你可以找到对应的主类,查看相应的线程状态。以上就是idea + jconsole的操作和使用了。

希望能够帮助到你,如果有错误的地方,请批评指正,感谢。