1. 絮絮叨叨
- 工作中需要借助Ecplise Memory Analyzer (MAT)分析dump文件,直接下载、安装、运行MAT报错
  
- 询问同事后,同事说可以先安装Ecplise,再以插件的形式安装MAT
- 下载、安装好Eclipse,点击运行仍然报错,且错误信息一致
- 笔者使用JDK 17.0.6,ls -l报错的目录,libjvm.dylib是存在的
- 同时,笔者使用的是Mac M2 aarch64架构(Mac M2芯片),跟同事一起确认了下载的安装包没有问题
  
2. 正确的解决办法
- 对应的lib存在、Ecplise产品安装包又是mac aarch64的,这时需要考虑JDK是否正确
- 使用如下命令查看JDK架构:java -XshowSettings:properties -version
- 发现JDK竟然是x86_64的,也就是说是Intel的芯片
  
- 参考笔者之前的博客:《Open JDK下载》,下载了Eclipse Adoptium提供的aarch64的JDK 17.0.6安装包
- 重新安装后,再次执行上述命令可以看到,JDK架构已经成功更新为aarch64
  
- 这时,再重新安装MAT,点击运行,一切OK 😄 😄 😄
  
3. 后记
- 最开始,一直以为是MAT无识别相对路径,按照某些解决方案修改其Info.list,直接指定libjvm.dylib的绝对路径- Mac OS, JDK1.7 (and 1.8) does not contain the JNI_CreateJavaVM symbol
- Eclipse: JVM shared library does not contain the JNI_CreateJavaVM symbol
 
- 直到看到这篇博客后,才受到启发可能是JDK架构不兼容:Mac上解决dose not contain the JNI_CreateJavaVM symbol 👍 👍 👍
- 之前一直都没有过是JDK架构不兼容,因为使用x86_64的JDK使用也快3个月,基于IntelliJ IDEA搭建的IDE、运行Java程序什么的根本没问题
- 笔者在修改Info.list无果后,一直觉得是自己的M2芯片太新了,Ecplise不支持 😭 😭



















![[AIGC] “惊天神器!Java大师推荐的终极工具 Netty ,让你的代码速度狂飙!“](https://img-blog.csdnimg.cn/8a466ed7b8f24f7b93327d63d3358fd4.png)