36

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

在此处输入图像描述

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

在此处输入图像描述

同样有趣的是 VisualVM 本身不显示 Profile 选项卡:

在此处输入图像描述

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

什么控制为特定程序显示哪些选项卡?我如何才能将它们全部恢复为仅显示概述和监视器的程序?

我有 Visual VM 1.3.5(目前最新)和 JDK 1.7.0_17。

4

8 回答 8

24

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

于 2013-09-04T16:42:18.327 回答
11

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

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

于 2013-04-15T19:47:31.640 回答
5

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

于 2014-07-09T13:26:22.597 回答
1

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

于 2016-04-15T11:48:23.003 回答
1

正如大多数人提到的,问题是由于 virtualvm 和您的应用程序的版本不匹配。

此外,visualvm 捆绑在 oracle 中,支持 jdk 高达 9。如果您使用 >9,请确保您使用另一个分析器。

于 2020-07-21T11:25:33.363 回答
0

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

于 2018-05-15T13:02:46.533 回答
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)的一部分,它工作得很好。

于 2018-01-11T08:50:19.880 回答
0

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

于 2017-03-16T00:31:29.220 回答