当我尝试使用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 :(得分:0)
Java Flight Recorder有可怕的文档和错误报告。该错误可能有很多原因。似乎如果您的命令行中有多个错误 - 将无法正确报告错误。
可能的错误包括:
虽然文档说:
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