VisualVM 启动器错误

2022-09-03 17:44:20

我正在尝试使用Eclipse VisualVM启动器。它看起来相当不错,除了如果VisualVM来不及对我的应用程序进行任何分析,它似乎会生成一个实例。我的应用程序在探查器初始化之前就完成了执行;启动后,将弹出一个错误窗口,指出:。然后,它显示运行Eclipse的VM(标记为“org.eclipse.equinox.launcher.Main”)。如何让它等待我的应用程序并进行适当的分析?cannot open requested application


答案 1

这可能为时已晚,但我遇到了同样的问题,设置断点然后以调试模式启动根本没有帮助。我最终发现VisualVM将其临时数据存储在文件夹%TMP%/hsperfdata_[username]中,例如,在我的Windows计算机上,该文件夹是C:\Users\Jacob\AppData\Local\Temp\hsperfdata_Jacob。事实证明,该过程没有足够的权限来访问该文件夹,因此我放宽了对它的权限,现在它工作得很好。希望这对有同样问题的人有用!


答案 2

我知道这个问题。我一直想出的唯一穷人的解决方案是:

  1. 在源代码中设置断点
  2. 在调试模式下启动程序
  3. 连接探查器
  4. 让程序继续

VisualVM 只需花费一点时间即可将分析代理注入 VM,我非常确定它只允许远程分析。

作为替代方案,您可以使用YourKit,它可以从一开始就分析您的应用程序。这样,在 VM 启动时注入分析代理:

java -agentpath:c:\yourkit\yjpagent.dll FooClass

我很好奇为什么VisualVM不提供这个选项,因为它在技术上是可行的。无论如何,我认为调试技巧是Eclipse内部的一个很好的解决方案,除非你也对类加载等感兴趣。


推荐