最近看JDK的命令行工具,使用Java VisualVM和Jconsole工具都可以监控java程序的运行情况(包括CUP和内存等的使用情况,线程的运行状态等)
在Java VisualVM 工具里可以直接看到本地运行的java程序(比如Eclipse)的运行状态
如果需要需要监控在tomcat中运行的web应用程序的运行状态的话就要打开tomcat的JMX支持
按照网上的说法,在tomcat 的bin目录下的catalina.bat文件中加入下面一段话(注意不要换行,10000是我自己设置的JMX的端口号,可以更改):
set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
但是我折腾了一天也没有成功(使用 netstat -ano 命令不会显示10000端口被占用,在 Java VisualVM中也不能连上)
后来发现原因是我的tomcat被安装为windows的服务了,如果单独启动tomcat的bin目录下的startup.bat是可以启动JMX的
使用这种方法来开启JMX是不需要输入账号密码的,若果需要使用账号密码认证的话(比如在生产环境)请参考网上其他文章
另外,除了在Catalina.bat里边添加上边一段话这种方法之外还可以用另外一种方法:在tomcat的bin目录下新建 setenv.bat,文件的内容还是上边加粗的黑色字体
的内容(和在catalina.bat文件中添加的不同是不用考虑这段话放的位置)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现