如何为VisualVM“<unknown application =”“>”?</unknown>命名

时间:2010-12-13 22:09:17

标签: java jmx visualvm

JDK 1.6附带了一个名为VisualVM的便捷工具,可以让您检查并运行正在运行的Java进程。一个功能是它可以自动检测本地计算机上正在运行的JVM。大多数都列为“(pid xxxx)”,但有些名称和图标,如VisualVM本身和其他类似NetBeans(例如,参见this dzone article中的屏幕截图)。

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

1 个答案:

答案 0 :(得分:29)

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

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