本文推荐一个好用的开源项目,Jarboot是一个Java服务启停、调试、诊断的平台,可以管理、监控及诊断一系列的Java进程。
GitHub主页:https://github.com/majianzheng/jarboot
Docker Hub: https://registry.hub.docker.com/r/mazheng0908/jarboot
Gitee镜像仓库:https://gitee.com/majz0908/jarboot
在测试环境、每日构建的集成环境,可以把一系列编译输出等jar文件放入约定的目录,由Jarboot提供友好的浏览器ui界面和http接口,统一管理它的启动、停止及状态的监控,以及执行命令对目标进程进行调试。
通常情况下,启动一个Java进程往往是使用java -jar xxxx.jar命令,其中xxxx.jar是启动的jar文件。如果需要增加VM参数的话就需要在java后面添加相应的VM参数,如果需要传入参数的话,还需要在命令的最后面添加传入的参数。当然直接使用java -jar太麻烦了,很多人会写一个shell脚本(Linux)或批处理脚本(Windows)。
编写脚本的时候往往是每个人每个项目都有着不同的风格,有些VM的配置在不同的java项目中是完全相同的,却要反复的复制粘贴。项目的启动脚本往往会拷贝一个项目的然后改改,重复的造轮子。
使用Jarboot可以在浏览器界面上启动、停止Java进程,可以方便的在界面上定制启动的参数。可以在浏览器界面上实时观察进程的日志打印和控制台输出,支持进程的守护,进程存活的监控,异常退出后的后置处理器定义等功能。
除了基本的功能外,还支持调试命令的执行,其中大部分命令的用法与Arthas一致。比如jad命令反编译源码(如下图),thread命令查看线程信息,stack命令监控调用栈,更多的调试命令使用可以参阅官方帮助文档。
其中,在线调试功能可以Attach服务器上其他的Java进程进行调试。
另外,Jarboot支持通过SPI扩展的方式自定义调试命令,或者自己开发插件扩充自己的调试命令,同时支持JDK和Spring的SPI。可以自己定义一条命令的实现方便扩展。
更多信息查阅文档:快速上手 · 语雀



