首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未启用JMC Java飞行记录器

未启用JMC Java飞行记录器
EN

Stack Overflow用户
提问于 2019-03-12 15:40:16
回答 1查看 1.8K关注 0票数 1

我正在使用spring工具套件和java任务控制插件来启动一个应用程序,我想使用JFR来监控它。我将-XX:+UnlockCommercialFeatures -XX:+FlightRecorder添加到SpringToolSuite4.ini中,并使用这两个标志(如果我理解正确的话,这两个标志都不是必需的)和要监视的应用程序的运行配置>参数> VM参数中的-XX:+FlightRecorder设置JAVA_OPTS。当同时将这两个标志添加到运行配置中时,应用程序不能使用openJdk启动。

在JVM浏览器中启动应用程序后,当选择Flight Recorder时,我得到以下异常。

代码语言:javascript
复制
java.lang.RuntimeException: Flight Recorder features are not enabled. To enable this you need to use a Java 7u4 or later JVM started with -XX:+UnlockCommercialFeatures -XX:+FlightRecorder.
    at com.oracle.jmc.flightrecorder.controlpanel.ui.FlightRecorderProvider.refresh(FlightRecorderProvider.java:105)
    at com.oracle.jmc.browser.views.JVMBrowserView$1.run(JVMBrowserView.java:98)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.oracle.jmc.rjmx.services.jfr.FlightRecorderException: Flight Recorder features are not enabled. To enable this you need to use a Java 7u4 or later JVM started with -XX:+UnlockCommercialFeatures -XX:+FlightRecorder.
    at com.oracle.jmc.flightrecorder.controlpanel.ui.FlightRecorderProvider.getService(FlightRecorderProvider.java:161)
    at com.oracle.jmc.flightrecorder.controlpanel.ui.FlightRecorderProvider.refreshRecordings(FlightRecorderProvider.java:117)
    at com.oracle.jmc.flightrecorder.controlpanel.ui.FlightRecorderProvider.refresh(FlightRecorderProvider.java:94)
    ... 7 more

我在下面的java版本中尝试了一下。

代码语言:javascript
复制
$ java -version
openjdk version "11.0.2" 2018-10-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.2+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.2+7, mixed mode)

或者使用oracle的JDK。

代码语言:javascript
复制
$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

上面提到的JDK中没有一个是java 8附带的jmc.exe,这是插件的一部分吗?

我怎样才能让它运行起来?

EN

回答 1

Stack Overflow用户

发布于 2019-03-12 16:22:17

IIRC,Java 11要求JMC 7能够启动和查看录制。JMC7EA版本预计很快就会出现在这里-- https://jdk.java.net/jmc/

在此期间,您可以自己构建JMC,有关如何构建的信息,请参阅http://hg.openjdk.java.net/jmc/jmc7/ (或者github,不能确切地确定它同步到哪个版本- https://github.com/JDKMissionControl/jmc)和自述文件。

您可以使用JVM命令行标志和jcmd启动记录,并使用https://docs.oracle.com/en/java/javase/11/docs/api/jdk.jfr/jdk/jfr/consumer/package-summary.html解析记录

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55116323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档