当我试图通过运行 Java Mission Control (jmc
) 来分析我的本地 Java 应用程序时,我无法连接到该应用程序。它在左侧 Pane 中显示的所有 JVM 进程的描述中显示“非热点 JVM 不支持 Flightrecorder”。
我的环境:Windows 7,Java 8u25
因为我无法在网上的任何地方找到这个问题的解决方案,所以我想与将来可能遇到同样问题的其他人(以及我 future 的自己)分享我幸运地发现的解决方案。
最佳答案
我在这里发布解决方案和导致解决方案的观察结果。
当我(碰巧)尝试运行 jvisualvm
时,它显示错误“无法监视本地 Java 应用程序”。在 http://visualvm.java.net/troubleshooting.html在标题为 “无法监视本地应用程序(启动时出现错误对话框)” 的部分中,我发现在 Windows 系统上,如果帐户名称包含大写字母,则一个确切的文件夹名称可能会出现问题。
解决方案是更改文件夹 %TMP%\hsperfdata_username
的名称,使大写与我的用户名相对应('e' 而不是 <文件夹名称中的 em>'E')。
进行此更改后,jmc
和 jvisualvm
又开始工作了。
注意:您需要在更改文件夹名称之前终止所有当前正在运行的 Java 应用程序。
关于Java 任务控制显示 "Flightrecorder is not supported for non hotspot jvms",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27160382/