一、问题

由于应用出现了一些性能问题,准备在本地启动应用,使用JMC分析下应用运行时的详细内存信息。
本地开发环境使用macbook,由于是使用的安装包安装的jdk,直接在命令行输入jmc,就可以启动JMC(如果没有配置path,可能需要到jdk安装目录下的bin内启动jmc)。

启动jmc:

结果:发现启动后界面上只有三个窗口操作按钮,界面根本无法显示出来。

二、原因

这个问题是由于Eclipse/SWT老版本的bug导致的,可以通过替换相关jar解决。bug reference: JMC-5139

三、解决

下载jar包:下载地址。

这里建议使用低版本3.105.2的包。我尝试使用了3.116.0的包,发现不好使
进入jdk安装目录(通常,安装包默认jdk目录为/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home/),

在lib/missioncontrol/plugins目录内找到org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar,将其备份,命令为:

mv org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar.bak

将我们下载的jar包重命名为org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar,复制到lib/missioncontrol/plugins目录内替换原jar包,命令为:

mv org.eclipse.swt.cocoa.macosx.x86_64-3.105.2.jar org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar

重启jmc,拖拽界面,显示成功:

附注方案来源地址:

https://stackoverflow.com/questions/48400346/java-mission-control-from-jdk-1-8-0-161-frozen-upon-startup-on-mac-os-x

在stack overflow上找到了一个同样的问题,并且发现已经有解决方案:。

四、连接远程机器

远程机器上启动应用程序时,增加JVM配置:

-XX:+UnlockCommercialFeatures \
-XX:+FlightRecorder \
-Dcom.sun.management.jmxremote.port=7001 \
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=7001
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=localhost

开启远程连接:

”文件“->”连接“->"创建新连接"->"下一步"

点击完成即可。

然后,点击JVM浏览器内的MBean服务器,可以连接远程服务,查看具体服务信息。

效果如下:

解决Mac OS下JDK 1.8无法使用JMC问题相关推荐

  1. 解决Mac OS升级系统后git无法使用的问题

    闲的无聊升级了macOs 然后git 就不能用了   !!!!   重点是第二条 1.需要重装Xcode xcode-select --install 2. 要用新的ssh密钥生成命令生成 !!!!! ...

  2. Mac OS下Tomcat native-APR的安装

    Mac OS下Tomcat native-APR的安装 1. 下载并编译APR 下载APR 在终端编译APR cd /<your_apr_dir>/aprCFLAGS='-arch x86 ...

  3. Mac OS 下的Vim使用系统剪切板

    [size=12]这里介绍的是Mac OS下终端Vim,Mac Vim并没有测试. [color=red] 下面的解决方法太麻烦了,直接装一个新的Vim直接搞定. macos的预装的终端Vim有个很麻 ...

  4. mac os下valgrind的安装

    valgrind是一款性能分析工具,功能强大. 在mac os下的安装略有不同,特写此文以记之. 现在最新的版本是3.8.1 tar jxvf valgrind-3.8.1.tar.bz2 cd va ...

  5. cp linux 显示进度条_Unix/Linux/Mac os下 文件互传

    Unix/Linux/Mac os下 文件互传 说起文件互传,就不得不提命令scp. 他是Secure copy的缩写,使用ssh连接和加密方式, 如果两台机器之间配置了ssh免密登录, 那在使用sc ...

  6. 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器

    https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...

  7. Mac os 下的文件权限管理

    Mac os 下的文件权限管理 命令 ls -l -A 结果 -rw-r--r-- 1 user admin 2326156 4 12 15:24 adb 横线代表空许可.r代表只读,w代表写,x代表 ...

  8. MAC OS 下QQ音乐下载存放的位置

    MAC OS 下QQ音乐下载存放的位置   /Users/用户/Library/Application Support/

  9. MAC OS下免费下载YouTube

    YouTube上有很多不错的视频,你感兴趣的视频除了可以加入自己播放列表之外,还可以将其下载到本地收藏起来.推荐这款软件"Xilisoft Download YouTube Video fo ...

最新文章

  1. qsort函数的用法
  2. OkHttp3源码解析(三)——连接池复用
  3. 【AngularJS】—— 2 初识AngularJs(续)
  4. java 代码同步_Java同步代码块 转
  5. cv mat保存图片_(七)神秘的Mat
  6. PHPCMS 核心代码与 www 分离部署
  7. 基于Minio和Thumbor搭建独立图片服务
  8. Bootstrap3 栅格系统之列平移
  9. 分布式光伏贷款欲破冰 多家银行推出相关业务
  10. html密码本源码,YoungxjPwd密码本 PHP版 v1.0
  11. GCD 深入理解(一)
  12. 在Android Studio 和 Eclipse 的 git 插件操作 代码提交以及代码冲突
  13. php fsockopen,php fsockopen()有什么用?
  14. 黑塞矩阵(Hessian Matrix)
  15. Android音频之多设备同时输出-cast通路分析
  16. 逻辑学是计算机科学的一个重要分支,逻辑学在计算机科学中应用.doc
  17. js 基础-函数传参
  18. U盘修复“系统找不到指定文件”问题解决方法
  19. 永琳的竹林迷径(path)
  20. Node.js 动手实现简单的模板引擎(列表渲染)

热门文章

  1. HDFS HA+Federation配置
  2. 计蒜客2018蓝桥杯省赛 B 组模拟赛(一)——H:封印之门
  3. android ocr java算法_Android OCR之tesseract
  4. 【深度学习】前馈神经网络
  5. JavaScript案例——红绿灯
  6. 赛效:如何压缩wps文档中的图片
  7. Android 图像压缩
  8. 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营
  9. Linux查询端口是否禁用,被防火墙屏蔽
  10. AJAX请求 $.ajaxSetup方法的使用