是否可以检查特定的jdk(Oracle或OpenJDK)是否支持Java Flight Recorder? 我一直试图在 OPEN JDK 8 上按以下方式运行我的应用程序
java -XX:StartFlightRecording
但这不适用于OPEN JDK 8
。我收到以下错误无法识别的VM选项-XX:+ UnlockCommercialFeatures
但不起作用
答案 0 :(得分:0)
您需要按此处所述“解锁商业功能”:
https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/run.htm#JFRUH176
命令应如下所示:
#include <iostream>
using namespace std;
int main() {
char gun;
char att;
cout << "Guns" << endl;
cout << "[1] AK" << endl;
cout << "[2] MP5" << endl;
cout << "[3] M2" << endl;
cout << "[4] SAR" << endl;
cout << "[5] Tommy" << endl;
cout << "[6] Custom" << endl;
cin >> gun;
cout << "[A] Holosight" << endl;
cout << "[B] Simplesight" << endl;
cout << "[C] Silencer" << endl;
cout << "[D] Muzzel Boost" << endl;
cout << "[E] Muzzel Break" << endl;
cout << "[F] 8x Zoom Scope" << endl;
cout << "[G] 16x Zoom Scope" << endl;
cout << "[H] Lasersight" << endl;
cin >> att;
switch (gun) {
case'1':
if (gun = 1)
cout << 'test' << endl;
else
cout << "Wrong Command" << endl;
break;
}
}
答案 1 :(得分:0)
一种检查JVM是否支持JFR的方法是:
$ jdb
打开第二个外壳。
$ jcmd
记住jdb进程的pid并执行以下操作:
$ jcmd <pid> help
如果JVM列出以JFR开头的诊断命令,则支持它。如果JDK缺少jcmd,则不支持JFR(除非它是JRockit JVM,在这种情况下,jcmd称为jrcmd,要查找的命令是start_flightrecording)。