gpt4 book ai didi

java - 如何删除 Java 飞行记录

转载 作者:行者123 更新时间:2023-11-30 05:36:43 25 4
gpt4 key购买 nike

我有一个 Java 飞行记录想要分享。不幸的是,Java 飞行记录在系统属性和环境变量中包含用户名和密码(JMC 正确地警告了这一点)。有没有办法从 Java 飞行记录中删除所有系统属性和环境变量,以便我可以共享它?

最佳答案

删除现有录音

可以使用 JDK 19 或更高版本附带的 jfr 工具来清理录音文件:

$ jfr scrub --exclude-events
jdk.InitialSystemProperty,jdk.InitialEnvironmentVariable
recording.jfr

该工具也应该适用于早期 JDK 版本的记录,也许可以追溯到 JDK 11。

验证

您可以使用打印命令验证它是否已被删除:

之前:

$ jfr print --events
jdk.InitialSystemProperty,jdk.InitialEnvironmentVariable
recording.jfr

jdk.InitialSystemProperty {
startTime = 11:03:27.197 (2022-10-19)
key = "java.vm.compressedOopsMode"
value = "Zero based"
}

jdk.InitialEnvironmentVariable {
startTime = 11:03:27.197 (2022-10-19)
key = "TERM_PROGRAM"
value = "Apple_Terminal"
}
...

之后:

$ jfr print --events
jdk.InitialSystemProperty,jdk.InitialEnvironmentVariable
scrubbed-recording.jfr

禁用事件

还可以在 JDK 17 中的命令行上关闭事件:

$ java 
-XX:StartFlightRecording:
jdk.InitialEnvironmentVariable#enabled=false,
jdk.InitialSystemProperty#enabled=false
...

对于 JDK 17 之前的版本,可以禁用 JMC 中的 jdk.InitialEnvironmentVariable 和 jdk.InitialSystemProperty 事件。在 GUI 记录向导中,或通过创建自定义 .jfc 文件。转到“窗口”->“模板管理器”,然后在命令行上提供自定义 .jfc,如下所示:

$ java -XX:StartFlightRecording=settings=/path/custom.jfc

关于java - 如何删除 Java 飞行记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56442586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com