visualvm intellij“无法创建与目标应用程序的JMX连接”分析无法正常工作

时间:2014-02-28 00:55:26

标签: java intellij-idea visualvm

我正在尝试使用visualVM来分析我正在使用Intellij进行调试的简单Java应用程序。我启动应用程序来调试,打开visualVM,我可以在列表中看到我的应用程序。我可以打开它;但是,我无法对我的应用程序使用抽样或分析。其他应用程序,如Intellij,可以很好地分析。当我检查visualVM日志时,我看到:

INFO [com.sun.tools.visualvm.jmx.impl.JmxModelImpl]:connect(2749) com.sun.tools.attach.AttachNotSupportedException:无法打开套接字文件:目标进程未响应或未加载HotSpot VM

更多信息: 操作系统=在x86_64上运行的Mac OS X版本10.9.1 Java的; VM;供应商= 1.7.0_51; Java HotSpot(TM)64位服务器VM 24.51-b03;甲骨文公司 Intellij IDEA = 13.0.2

如果有人这样做,请告诉我你是怎么做到的。我也想使用Intellij VisualVMLauncher,如果我能顺利的话。

5 个答案:

答案 0 :(得分:17)

也许this helps

java -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=9010 \
  -Dcom.sun.management.jmxremote.local.only=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -jar xxx.jar

答案 1 :(得分:10)

这看起来是JDK bug #8023786。在JDK 7u60中修复此问题之前,您可以使用-XX:+ StartAttachListener运行配置文件应用程序。有关此错误的一些详细信息也在this电子邮件主题中。

答案 2 :(得分:3)

我在运行独立的visualvm时遇到过类似的问题。相反,尝试运行与用于运行应用程序的相同jdk捆绑的visualvm(在我的情况下为c:\ jdk1.7.0 \ bin \ jvisualvm.exe),它可能首先不需要jmx。

答案 3 :(得分:1)

我尝试了Tomas Hurka的建议:将-XX:+StartAttachListener添加到运行配置中。在连接到新的调试过程时,我同样使用visualvm挂起。

在我的情况下,我正在运行 JUnit 测试文件。我在测试中设置了几个断点。事实证明,当我单击resume program execution按钮(fn+F9 in Mac OSX)并在测试中的新断点处停止时,visualvm不再挂起,并且已成功记录CPU使用率,直到执行该点。 (之前它说我的JVM没有CPU使用率。)

我能够最终启动CPU采样,甚至从断点开始校准visualvm分析器。在按resume execution足够多次测试结束后,我有一个完整的快照,我可以保存为csv。

因此,暂时只需在代码的最早合理行设置一个断点,并确保从此开启采样/分析。不太理想,但现在比为商业分析师支付巨额款项更好。

另外,事实证明我们并不是唯一一个有关使用visualVM问题的人,eclipse也有这个问题:Java VisualVM hangs connecting to locally process launched from eclipse

与代理使用有关的事情。在Cmd+Shift+A中使用intelliJ并搜索网络会为我带来这个有趣的结果(第二个搜索结果,在Edit Network options下方):

'您将JVM属性java.net.useSystemProxies设置为true。这将导致某些网络调用通过操作系统定义的代理。如果您不打算使用系统定义的代理,请禁用此属性。'

我没有进一步研究这个途径,因为我似乎能够通过添加-XX:+StartAttachListener来运行配置并明智地使用断点和“恢复程序执行”来解决VisualVM中的问题。 #39;按钮。

供参考,我在Retina MBP 2013,OSX Mavericks和JDK 8上使用IDEA 14 Community Edition,Project SDK和VisualVM都来自同一个oracle JDK(JDK 8)。

我希望这有一些帮助,这个问题持续了将近一年是荒谬的。

答案 4 :(得分:0)

如果可以帮助任何人,我发现的解决方案是通过VisualVM launcher plugin for IntelliJ在IntelliJ中启动该应用程序。它通过Glassfish上的Web应用程序为我工作。