idea + jconsole
1 确认jconsole位置
首先准备工作,需要确定已经了安装jdk。
进入目录 jdk安装路径,例如:C:\demo\development\java\jdk1.8.0_212
**
**
进入bin目录之后,你会找到
点击之后,进入如下图示之后,选择远程连接,jconsole的操作就完成了,接下来需要准备你的程序
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配置,如下图所示,
点击开之后选择Edit Configurations… 选项,点击开之后,本人的是因为已经配置过了,所以都是存在的数据,如果你未运行过你的程序,这些都是空的,需要你主动配置一下
上图中的配置项,名字是任意填写(别重复就行),jdk版本和程序启动类都是下拉选,选择你想要运行的程序启动类路径即可。
其中比较中的就是jvm配置,当然如果是第一次点击进行有可能不存在这个文本框,不要着急,点击Modify options即可找到对应的VM options
上图片
接下来就是添加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 + jconsole的操作和使用了。
希望能够帮助到你,如果有错误的地方,请批评指正,感谢。