这似乎是一个荒谬的问题。谷歌搜索VisualVM带来了很多信息,包括据说很容易连接到运行JVM和监视器。
好吧,事实并非如此。我不知道如何连接VisualVM到我正在运行的应用程序来挽救我的生命。我做错了什么(或者更准确地说,我做错了什么)?
当我启动我的程序时,该程序的新 VM 条目出现在本地 VM 窗格中,但是当我尝试“连接”时,它只是坐在那里“旋转”。最后,当我的程序退出(或我停止它)时,连接尝试失败。
启动应用程序时是否需要定义某种 VM 参数或代理?我需要以特定方式编译它吗?我需要其他一些“演员”参与吗?
我找到了一个站点,其中包含一些我在其他任何地方都没有看到的信息,但这也不起作用。
更新:
在一个稍微不同但相关的主题上,我hprof在我的程序上运行了 java profiler,它生成了一个包含收集信息的二进制文件或文本文件。据说VisualVM可以打开此信息并允许对收集的内容进行可视化浏览。它打开文件并至少报告一些正确的信息,例如文件的大小和位置,但它的行为就像没有数据可显示一样。