会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 Jarboot:一个强大的Java进程管理工具!

Jarboot:一个强大的Java进程管理工具

时间:2025-11-04 13:39:07 来源:益强数据堂 作者:IT科技 阅读:606次

本期推荐的进具Jarboot 是一个Java进程启停、管理、程管诊断的理工平台,可以管理、进具守护、程管监控及诊断本地和远程的理工Java进程。

在测试环境、进具每日构建的程管集成环境,可以把一系列编译输出等jar文件放入约定的理工目录,由Jarboot提供友好的进具浏览器ui界面和http接口,统一管理它的程管启动、停止及状态的理工监控,以及执行命令对目标进程进行调试。进具

技术背景及目标

Jarboot 使用Java Agent和ASM技术往目标Java进程注入代码,程管无业务侵入性,理工注入的代码仅用于和 Jarboot 的企商汇服务实现命令交互,部分命令会修改类的字节码用于类增强,加入了与Arthas类似的命令系统,如获取JVM信息、 监控线程状态、获取线程栈信息等。

浏览器界面管理,一键启、停服务进程,不必挨个手动执行 支持启动、停止优先级配置,默认并行启动 支持进程守护,开启后若服务异常退出则自动启动并通知 支持文件更新监控,开启后若jar文件更新则自动重启 调试命令执行,同时远程调试多个Java进程,界面更友好

架构简介 

模块关系 

序列图 

安装或编译构建

使用Docker

sudo docker run -itd --name jarboot -p 9899:9899 mazheng0908/jarboot 

编译源码的步骤

使用压缩包安装或者Docker的时候忽略此步骤

编译Jarboot源代码 

#首先编译前端 $ cd jarboot-ui #首次时需要先安装依赖,执行yarn或npm install $ yarn #执行编译,yarn build或npm run build,开发模式可执行yarn start或npm run start $ yarn build #切换到代码根目录,编译Java代码 $ cd ../ $ mvn clean install 

启动Jarboot服务 

#执行 startup.sh 启动, 在Windows系统上使用startup.cmd。 $ sh startup.sh 

进入登录界面,云服务器提供商初始的用户名:jarboot,默认密码:jarboot

SpringBoot应用

引入spring-boot-starter-jarboot依赖 

<dependency>     <groupId>io.github.majianzheng</groupId>     <artifactId>spring-boot-starter-jarboot</artifactId>     <version>${jarboot.version}</version> </dependency> 

实现CommandProcessorSPI接口

同样的, 你也可以在方法上使用 @Bean 注解来定义命令处理器。

如果没有使用@Name注解的话,将会默认使用Bean的名称作为命令的名称。 

@Name("spring.command.name") @Summary("The command summary") @Description("The command usage detail") @Component public class DemoServiceImpl implements DemoService, CommandProcessor {   @Override   public String process(CommandSession session, String[] args) {     return "Spring boot Demo user-defined command using Spring SPI";   }   //implement other method... } 

当引入了spring-boot-starter-jarboot依赖后,将会增加2个Spring调试命令,spring.bean和spring.env。 

#spring.bean 用法: $ spring.bean [-b <name>] [-d] #示例: # 获取所有的bean name $ spring.bean # 获取bean的信息 $ spring.bean -b beanName # 获取bean的详细信息 $ spring.bean -b beanName -d #sping.env 用法: $ spring.env <name> #示例: $ spring.env spring.application.name 

如何创建一个用户自定义的命令

引入jarboot api的依赖

<dependency>     <groupId>io.github.majianzheng</groupId>     <artifactId>jarboot-api</artifactId>     <scope>provided</scope>     <version>${jarboot.version}</version> </dependency> 

实现spi接口 

/**  * 使用Name注解来定义一个命令的名字  */ @Name("demo") @Summary("The command summary") @Description("The command usage detail") public class DemoCommandProcessor implements CommandProcessor {     @Override     public String process(CommandSession session, String[] args) {         return "demo SPI command result.";     } } 

创建JDK的spi定义文件

在目录resources/META-INF/services中创建名为 com.mz.jarboot.api.cmd.spi.CommandProcessor的文件,内容为类的全名。 

public class DemoApplication {     public static void main(String[] args) {         // do something         try {             //Notify completion             JarbootFactory.createAgentService().setStarted();         } catch (Exception e) {             log(e.getMessage());         }     } } 

(责任编辑:人工智能)

推荐内容
  • scardsvr服务未启动的解决方法(解决scardsvr服务未启动问题的有效措施)
  • 以耕升GT630怎么样(评估一款经济实惠的显卡选择,以耕升GT630是否能满足你的需求?)
  • 华硕W7安装教程(详细步骤教你如何在华硕W7上安装个性化操作系统)
  • 如何解决电脑忘记开机密码的问题?(简单方法帮助您重新登录电脑)
  • vivo手机4寸屏手机的特点与优势(小巧便携,功能强大,实用性超越预期)
  • 小辣椒LA2-S手机评测(一款高性价比的手机选择)