mat是用来分析java heap dump文件的好工具,全称是Memory Analyzer, 是eclipse开发的工具,非常的好用。
先说结论,目前mat的dmg包不支持m1芯片,我是安装的支持m1芯片的eclipse,然后在eclipse里通过插件的形式安装的mat.
安装方式
百度或者谷歌搜索的文章都写了如何安装mat,可以下载下来安装,也可以在eclipse里安装mat插件。
首先我是按照教程下载zip包,解压之后使用dmg文件安装的,下载地址点这里.
我下载了macos的包,然后解压安装dmg,然后启动,报错如下:
The JVM shared library "/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/../lib/server/libjvm.dylib"
does not contain the JNI_CreateJavaVM symbol.
百度和谷歌并没有找到解决方案,我的电脑芯片是m1的,arm架构,可能mat不支持arm芯片。
然后我切换到applications下面,使用命令行启动mat
cd /Applications/mat.app/Contents/MacOS
./MemoryAnalyzer
2022-01-04 19:37:23.036 MemoryAnalyzer[12678:340007] Error loading /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/MacOS/libjli.dylib: dlopen(/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/MacOS/libjli.dylib, 0x0109): tried: '/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/MacOS/libjli.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/lib/libjli.dylib' (no such file)
命令行启动报错信息就比较明显了,需要x86(intel),但是是arm的,看来当前的mat不支持m1芯片。
解决方案
前文说了mat支持2种方式,下载dmg安装的方式不行,试试插件。
首先需要安装支持M1的eclipse,通过搜索,可以搜到eclipse最新支持m1的release版本,下载地址点这里
上图红框中圈出来的就是支持m1的版本,点击之后跳到下载页面,点击下载dmg即可。
然后根据eclipse安装mat插件的教程来弄就好了。