解决Mac OS下JDK 1.8无法使用JMC问题
一、问题
由于应用出现了一些性能问题,准备在本地启动应用,使用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问题相关推荐
- 解决Mac OS升级系统后git无法使用的问题
闲的无聊升级了macOs 然后git 就不能用了 !!!! 重点是第二条 1.需要重装Xcode xcode-select --install 2. 要用新的ssh密钥生成命令生成 !!!!! ...
- Mac OS下Tomcat native-APR的安装
Mac OS下Tomcat native-APR的安装 1. 下载并编译APR 下载APR 在终端编译APR cd /<your_apr_dir>/aprCFLAGS='-arch x86 ...
- Mac OS 下的Vim使用系统剪切板
[size=12]这里介绍的是Mac OS下终端Vim,Mac Vim并没有测试. [color=red] 下面的解决方法太麻烦了,直接装一个新的Vim直接搞定. macos的预装的终端Vim有个很麻 ...
- mac os下valgrind的安装
valgrind是一款性能分析工具,功能强大. 在mac os下的安装略有不同,特写此文以记之. 现在最新的版本是3.8.1 tar jxvf valgrind-3.8.1.tar.bz2 cd va ...
- cp linux 显示进度条_Unix/Linux/Mac os下 文件互传
Unix/Linux/Mac os下 文件互传 说起文件互传,就不得不提命令scp. 他是Secure copy的缩写,使用ssh连接和加密方式, 如果两台机器之间配置了ssh免密登录, 那在使用sc ...
- 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器
https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...
- Mac os 下的文件权限管理
Mac os 下的文件权限管理 命令 ls -l -A 结果 -rw-r--r-- 1 user admin 2326156 4 12 15:24 adb 横线代表空许可.r代表只读,w代表写,x代表 ...
- MAC OS 下QQ音乐下载存放的位置
MAC OS 下QQ音乐下载存放的位置 /Users/用户/Library/Application Support/
- MAC OS下免费下载YouTube
YouTube上有很多不错的视频,你感兴趣的视频除了可以加入自己播放列表之外,还可以将其下载到本地收藏起来.推荐这款软件"Xilisoft Download YouTube Video fo ...
最新文章
- qsort函数的用法
- OkHttp3源码解析(三)——连接池复用
- 【AngularJS】—— 2 初识AngularJs(续)
- java 代码同步_Java同步代码块 转
- cv mat保存图片_(七)神秘的Mat
- PHPCMS 核心代码与 www 分离部署
- 基于Minio和Thumbor搭建独立图片服务
- Bootstrap3 栅格系统之列平移
- 分布式光伏贷款欲破冰 多家银行推出相关业务
- html密码本源码,YoungxjPwd密码本 PHP版 v1.0
- GCD 深入理解(一)
- 在Android Studio 和 Eclipse 的 git 插件操作 代码提交以及代码冲突
- php fsockopen,php fsockopen()有什么用?
- 黑塞矩阵(Hessian Matrix)
- Android音频之多设备同时输出-cast通路分析
- 逻辑学是计算机科学的一个重要分支,逻辑学在计算机科学中应用.doc
- js 基础-函数传参
- U盘修复“系统找不到指定文件”问题解决方法
- 永琳的竹林迷径(path)
- Node.js 动手实现简单的模板引擎(列表渲染)