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

时间:2013-04-15 19:42:24

标签: java visualvm jvisualvm

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

enter image description here

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

enter image description here

同样有趣的是,VisualVM本身不会显示“配置文件”选项卡:

enter image description here

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

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

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

8 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:9)

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

对我有用的是指定"开始分析来自"类。如果我把这个留空,我没有得到探查器标签。当我指定它时,我做到了。我应该注意到这是一个在Tomcat下运行的Web应用程序,因此我将org.apache.catalina.startup.**指定为起始类。

答案 4 :(得分:1)

正如大多数人所说, 该问题是由于virtualvm与您的应用程序版本不匹配所致。

另外, visualvm捆绑在oracle中,它最多支持9个jdk。 如果您使用的是> 9,请确保您要使用另一个分析器。

答案 5 :(得分:0)

如果您正在运行VisualVM for local application

,请检查代理是否已禁用

答案 6 :(得分:0)

我在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)的一部分,效果很好。

答案 7 :(得分:0)

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