21

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

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

4

1 回答 1

31

我通过NetBeans 论坛帖子回答解决了我自己的一半问题。添加 JVM 命令行参数-Dvisualvm.display.name=FooBar使 VisualVM 将应用程序显示为“FooBar”。但我仍然无法弄清楚如何影响图标。

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

于 2010-12-14T05:36:18.827 回答