为什么VisualVM没有显示所有正常选项卡?

通常我会在VisualVM中看到本地运行Java程序的所有这些选项卡:

在此处输入图像描述

但是,我有一个本地程序,目前只向我显示概述和监视器(即使它通常显示上面显示的所有内容):

在此处输入图像描述

同样有趣的是VisualVM本身不提供Profile选项卡:

在此处输入图像描述

显示的所有三个程序都使用具有相同Java Home的相同JVM运行。

什么控制为特定程序显示哪些选项卡? 如何只显示概述和监视器,我怎样才能将它们全部取回?

我有Visual VM 1.3.5(此时最新)和JDK 1.7.0_17。

我发现这是使用错误的JDK版本的问题。 在我的情况下,我的应用程序在64位JDK上运行,我从32位JDK启动VisualVM。 从运行我的应用程序的同一JDK启动VisualVM后,一切都很好。 希望它会对你有所帮助。

您可能需要在应用上启用jmx端口。 尝试将这些开关添加到您的VM,并查看选项卡是否再次出现:

-Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

我只是删除~/.visualvm并重新运行,请参阅https://java.net/jira/browse/VISUALVM-598

对我有用的是指定“开始分析”类。 如果我把它留空,我没有得到探查器选项卡。 当我指定它时,我做到了。 我应该注意到这是一个在Tomcat下运行的Web应用程序,所以我指定了org.apache.catalina.startup.**作为起始类。

如果您正在为本地应用程序运行VisualVM,请检查代理是否已禁用

我在VisualVM中丢失了探查器选项卡时遇到了类似的问题。 我正在使用Oracle JDK 1.8,并希望分析在Tomcat 8(JPA,Spring,Hibernate,Vaadin等)上运行的Web应用程序。

我尝试了所有上述解决方案和许多其他在互联网上找到的解决方案,但不幸的是,他们都没有解决缺少的探查器选项卡问题。

所以我切换到Java Mission Control概要分析工具(JMC + Flight Recorder),这是标准Oracle JDK(来自JDK 1.7 update 40)的一部分,它运行良好。

就我而言,问题是使用了错误的JDK版本。 我的应用程序在jdk1.7.0_80上运行,VisualVm在jdk1.8.0_162上运行。 将APP JDK版本从1.7.0_79替换1.7.0_80可以解决问题。