我是靠谱客的博主 心灵美台灯,最近开发中收集的这篇文章主要介绍解决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下JDK 1.8无法使用JMC问题一、问题二、原因三、解决四、连接远程机器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部