2013-10-07 56 views
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 

回答

0

Java的飞行记录仪具有可怕的文档和错误报告。该错误可能是由于多种原因。看起来如果你的命令行有多个错误 - 没有错误会被正确报告。

可能的错误包括:

  • 错误输入参数。我输入了dist = true而不是disk = true。
  • 输入一段时间的数字。

虽然文件说:

maxage=time Specifies the maximum age (in minutes) of disk data for default recording.

它真正的意思是,你必须指定一个单位。例如30分钟半小时或30分钟半分钟。这也适用于其他时间太:

delay=time Specifies the delay (in milliseconds) between the Java application launch time and the start of the recording.

0

这是当启动Java时VirtualMachineError情况下被抛出时,在情况下写的是什么,例如当Java代理无法加载。 JDK(最多9个)对于哪里出了问题并不是非常具有说服力。

  • JDK 7把刚:

    Error occurred during initialization of VM

    Failed to start tracing backend.

    Java Result: 1

  • JDK 8是多一点的描述可以指向一个类是错的,增加了JDK的7输出类似:

    [jfr][WARN ][2.293] JFR initialization attempt failed.

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

  • JDK 9在这里真正有帮助,因为它会用堆栈跟踪写入VirtualMachineError的消息,例如:

    java.lang.NoClassDefFoundError: org.somepackage.SomeClass

相关问题