Windows环境下Tomcat启用Java Flight Recorder及解锁商业特性指引
解决Windows下Tomcat中Java Flight Recorder商业特性解锁问题
嘿,这个问题我之前帮不少开发者处理过——你遇到的"解锁商业特性"提示,大概率是因为你在用JDK 8的Oracle商业版本(JDK 11及以后的OpenJDK/Oracle JDK已经把JFR开源内置,不需要解锁了)。下面针对Tomcat的两种常见启动方式,给你一步步的操作指南:
情况1:通过startup.bat脚本手动启动Tomcat
- 找到你的Tomcat安装目录,进入
bin文件夹,找到catalina.bat文件,用记事本或者Notepad++打开它。 - 找到设置
JAVA_OPTS的行(一般在文件开头附近,如果没有的话可以自己新增一行),把解锁JFR的参数加进去:
这样既保留了原来的JVM参数,又新增了需要的解锁配置。set JAVA_OPTS=%JAVA_OPTS% -XX:+UnlockCommercialFeatures -XX:+FlightRecorder - 保存文件后,关闭当前运行的Tomcat,重新用
startup.bat启动,参数就会生效了。
情况2:Tomcat以Windows服务方式运行
这种情况不能直接改bat脚本,得通过服务配置工具来设置:
- 按下Win+R,输入
services.msc打开服务管理器,找到你的Tomcat服务,记好它的名称(比如Apache Tomcat 9.0 Tomcat9)。 - 回到Tomcat的
bin目录,找到对应版本的配置工具,比如Tomcat9就是tomcat9w.exe,双击打开。 - 在弹出的窗口里切换到Java标签,找到下方的Java Options文本框。
- 在文本框的最后添加这两行参数(也可以合并成一行用空格分隔):
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder - 点击确定保存,然后回到服务管理器,右键重启你的Tomcat服务。
等Tomcat重启完成后,再打开Java Mission Control连接对应的JVM进程,就能正常创建JFR录制会话了。如果之后你升级到JDK 11或更高版本,记得把这两个参数删掉,因为新版本的JFR已经默认启用啦。
内容的提问来源于stack exchange,提问作者yash
相关产品推荐
相关产品推荐

