通常我会在VisualVM中看到本地运行Java程序的所有这些选项卡:
但是,我有一个本地程序,目前只向我显示概述和监视器(尽管它通常显示上面显示的所有内容):
同样有趣的是,VisualVM本身不会显示“配置文件”选项卡:
显示的所有三个程序都使用相同的JVM和相同的Java Home运行。
什么控制为特定程序显示哪些选项卡?如何只显示概述和监视器,我怎样才能将它们全部取回?
我有Visual VM 1.3.5(此时最新)和JDK 1.7.0_17。
答案 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 可以解决问题。