无法初始化跟踪后端

时间:2013-10-07 13:32:13

标签: java

当我尝试使用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

2 个答案:

答案 0 :(得分:0)

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

可能的错误包括:

  • 对参数进行造型。我输入了dist = true而不是disk = true。
  • 输入一段时间的数字。

虽然文档说:

  

maxage = time指定默认录制的磁盘数据的最大年龄(以分钟为单位)。

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

  

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

答案 1 :(得分:0)

这是在启动java时抛出VirtualMachineError实例时所写的内容,例如在无法加载java代理的情况下。 JDK(最多9个)对于出了什么问题并不是很沮丧。

  • JDK 7只写:

      

    VM初始化期间发生错误

         

    无法开始跟踪后端。

         

    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