如何在JMC中实现JFR随应用结束自动保存录制文件?
如何在JMC中实现JFR全生命周期录制并自动保存文件
要在JMC中实现和命令行一致的JFR全生命周期录制(从JVM启动到退出自动保存文件),核心是从JMC启动新的JVM进程并绑定录制配置,而非连接已运行的进程,具体步骤如下:
- 打开JMC,通过顶部菜单栏选择
File->New->Flight Recorder Recording,或者直接在左侧导航栏找到「Flight Recorder」入口创建录制任务。 - 在弹出的配置窗口中,选择Start a new JVM with recording选项(这是实现全生命周期录制的关键,不要选连接已有进程的选项)。
- 配置应用启动参数:
- 若为主类启动,在
Main class栏填写应用主类的全限定名,Classpath配置与本地启动应用一致的类路径; - 若为Jar包启动,切换到
Jar file选项,选择目标Jar文件; - 在
VM arguments中可添加常规JVM参数(如堆大小设置),无需额外添加JFR命令行参数,JMC会自动配置全生命周期录制的相关参数。
- 若为主类启动,在
- 配置退出自动保存规则:
- 切换到
Recording标签页,找到On exit分组; - 勾选
Save recording when the JVM exits normally or crashes; - 在
Save to栏指定录制文件的保存路径和文件名(例如/Users/xxx/recording/my_app.jfr),可按需勾选Compress recording启用文件压缩。
- 切换到
- 点击
Finish启动应用,JFR会从JVM启动时开始全程录制,无论应用正常退出还是意外崩溃,录制文件都会自动保存到指定路径,不会出现丢失情况。
注意事项
- 确保JMC版本与目标JDK版本兼容,避免因版本不匹配导致录制失败;
- 若应用启动需要特殊环境变量,可在配置窗口的
Environment标签页添加对应的环境变量配置。
内容的提问来源于stack exchange,提问作者davidalayachew
相关产品推荐
相关产品推荐

