Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';t VisualVM是否显示所有正常选项卡?_Java_Visualvm_Jvisualvm - Fatal编程技术网

Java 为什么不是';t VisualVM是否显示所有正常选项卡?

Java 为什么不是';t VisualVM是否显示所有正常选项卡?,java,visualvm,jvisualvm,Java,Visualvm,Jvisualvm,通常我在VisualVM中看到本地运行Java程序的所有这些选项卡: 但是,我有一个本地程序,目前只显示概览和监视器(尽管它通常显示上面显示的所有内容): 另一个有趣的是VisualVM本身没有显示Profile选项卡: 显示的所有三个程序都使用相同的JVM和相同的Java Home运行 什么控制为特定程序显示哪些选项卡?我怎样才能把它们都拿回来,让我的程序只显示概览和监视器 我有Visual VM 1.3.5(最新版本)和JDK 1.7.0_17。您可能需要在应用程序上启用jmx端口。尝

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

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

另一个有趣的是VisualVM本身没有显示Profile选项卡:

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

什么控制为特定程序显示哪些选项卡?我怎样才能把它们都拿回来,让我的程序只显示概览和监视器


我有Visual VM 1.3.5(最新版本)和JDK 1.7.0_17。

您可能需要在应用程序上启用jmx端口。尝试将这些开关添加到您的虚拟机中,然后查看是否再次显示这些选项卡:

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

我发现这是使用错误的JDK版本的问题。在我的例子中,我的应用程序运行在64位JDK上,我从32位JDK启动了VisualVM。
从运行我的应用程序的同一个JDK启动VisualVM之后,一切都很好。希望它能对您有所帮助。

我只是删除了
~/.visualvm
,然后重新运行,请参阅对我有效的方法是指定“开始评测自”类。如果我将此项留空,则无法获取“探查器”选项卡。当我指定它时,我做到了。我可能应该注意到,这是一个在Tomcat下运行的web应用程序,因此我指定了
org.apache.catalina.startup.*
作为起始类。

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

我遇到了一个类似的问题,即VisualVM中缺少profiler选项卡。我正在使用OracleJDK1.8,并希望分析运行在Tomcat8上的web应用程序(JPA、Spring、Hibernate、Vaadin等)

我尝试了上面提到的所有解决方案以及在互联网上找到的许多其他解决方案,但不幸的是,没有一个解决了缺少探查器选项卡的问题


因此,我切换到Java任务控制评测工具(JMC+飞行记录器),它是标准Oracle JDK(来自JDK 1.7更新40)的一部分,工作非常好

在我的例子中,问题是使用了错误的JDK版本。我的应用程序运行在jdk1.7.0_80上,VisualVm运行在jdk1.8.0_162上。
将应用程序JDK版本从1.7.0_79替换为1.7.0_80解决了这个问题。

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

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

这些都是本地程序——这是否仍然适用?我曾经想评测我的本地jboss,在这种情况下,是的,它确实起到了作用。我不记得是必须将jmx端口添加到VisualVM还是它自己找到的。我尝试了所有建议的答案(验证了jvisualvm使用与应用程序相同的java版本,删除了~/.VisualVM文件夹,没有代理),但只有这一个有效,尽管jvisualvm和app在同一台机器上运行,但该程序与外部站点之间有一个特定的https://连接。当我关闭此功能时(因此没有请求),我将在VisualVM中获取所有选项卡。嗯……你也能为远程应用程序这样做吗(远程应用程序没有显示“我的配置文件”选项卡,仅显示本地)?thanks@DiegoRamosVisualVM不支持远程应用程序的分析: