JMC 是 Java 虚拟机(JVM)否认分析和诊断工具套件,主要针对运行在生产环境中的系统。开发人员使用它来收集有关 JVM 和 Java 应用程序详细的运行状况信息。
问题
由于应用出现了一些性能问题,准备本地启动应用并使用JMC分析下应用运行时的详细内存信息。
我本地开发使用的是macbook pro,由于使用的安装包安装的jdk,因此直接在命令行输入jmc就可以启动JMC(如果没有配置path可能需要到jdk安装目录下的bin内启动jmc):
但是发现启动后界面上只有三个窗口操作按钮,并且也无法拖拽,界面根本无法显示出来:
解决
这个问题是由于Eclipse/SWT老版本的bug导致的,可以通过替换相关jar解决。bug reference: JMC-5139
- 下载jar包:下载地址(选最上面的即可)。
- 进入jdk安装目录,在
lib/missioncontrol/plugins
目录内找到org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar
,将其备份。
(通过安装包安装的jdk目录为/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home/) - 将我们下载的jar包重命名为
org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar
,复制到lib/missioncontrol/plugins
目录内替换原jar包。 - 重启jmc,拖拽界面,显示成功:
方案来源
在百度上根本搜不到相关的问题和解决,只能去google查找了,然后在stack overflow上找到了一个同样的问题,并且发现已经有解决方案:跳转stack overflow原question地址