如何为 VisualVM 命名“<未知应用程序>”?

2022-09-02 03:44:28

JDK 1.6 附带了一个名为 VisualVM 的便捷工具,该工具允许您检查正在运行的 Java 进程并与之交互。一个功能是它自动检测本地计算机上正在运行的JVM。大多数被列为“ (pid xxxx)”,但有些有一个名称和一个图标,如VisualVM本身,其他的如NetBeans(例如,请参阅此dzone文章中的屏幕截图)。

如何将我的应用程序名称和图标注入 JVM,以便它正确显示在 VisualVM 的应用程序列表中?我的应用是否需要运行 JRE 1.6,或者我是否也可以在 1.5 下执行此操作?


答案 1

我通过 NetBeans 论坛帖子答案解决了我自己问题的一半。添加 JVM 命令行 arg 会使 VisualVM 将应用显示为“FooBar”。但我仍然不知道如何影响图标。-Dvisualvm.display.name=FooBar

更新:唉,我想我找到了图标的答案。这些图标通过 VisualVM 源代码中的 MainClassApplicationTypeFactory 硬编码到 VisualVM 中,从静态方法 ApplicationTypeFactory.getApplicationTypeFor(Application) 调用。我看不到任何将新图标注入VisualVM的方法,除非通过制作一个可以注册新类型工厂的VisualVM插件 - 例如,Glassfish插件通过GlassFishApplicationTypeFactory.initialize()做到这一点。


答案 2

推荐