1

当我尝试使用 Java Flight Recorder 时,我收到一条错误消息,指出 Java 在启动 Java 时“无法初始化跟踪后端”。

我的命令行是:

-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-XX:StartFlightRecording=compress=true,delay=10000,maxage=1440,filename=test.jfr
-XX:FlightRecorderOptions=defaultrecording=true,dist=true,loglevel=trace,settings=profile.jfc,dumponexit=true
4

2 回答 2

0

Java Flight Recorder 有可怕的文档和错误报告。该错误可能有多种原因。似乎如果您在命令行中有多个错误 - 将不会正确报告错误。

可能的错误包括:

  • 参数输入错误。我输入了 dist=true 而不是 disk=true。
  • 一次输入一个数字。

虽然文档说:

maxage=time 指定默认记录的磁盘数据的最长期限(以分钟为单位)。

它实际上意味着您必须指定一个单位。例如 30m 半小时或 30s 半分钟。这也适用于其他时间:

delay=time 指定 Java 应用程序启动时间和记录开始之间的延迟(以毫秒为单位)。

于 2013-10-07T13:32:12.570 回答
0

这是VirtualMachineError在启动 java 时抛出实例时所写的内容,例如在 java 代理无法加载的情况下。JDK(最多 9 个)对问题的描述不是很详细。

  • JDK 7 只写:

    初始化虚拟机时出错

    无法启动跟踪后端。

    Java 结果:1

  • JDK 8 更具描述性,它可以指向一个错误的类,在 JDK 7 的输出中添加如下内容:

    [jfr][WARN][2.293] JFR 初始化尝试失败。

    [java] [jfr][WARN][2.293] org.somepackage.SomeClass

  • JDK 9 在这里真正可以提供帮助,因为它VirtualMachineError使用堆栈跟踪写入 ' 消息,例如:

    java.lang.NoClassDefFoundError: org.somepackage.SomeClass

于 2016-07-11T18:21:54.653 回答